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,
'ordered_class_elements' => 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);

View File

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

View File

@ -30,26 +30,31 @@ switch (post('op')) {
break;
// Modifica conto nel partitario
// Modifica conto di livello 2 e 3 nel partitario
case 'edit':
$idconto = post('idconto');
$idpianodeiconti2 = post('idpianodeiconti2');
$idpianodeiconti = post('idpianodeiconti');
$numero = post('numero');
$descrizione = post('descrizione');
if ($idconto != '') {
// Controllo che non sia stato usato un numero non valido del conto
$query = 'SELECT idpianodeiconti2, numero FROM co_pianodeiconti3 WHERE numero='.prepare($numero).' AND NOT id='.prepare($idconto).' AND idpianodeiconti2='.prepare($idpianodeiconti2);
$lvl = post('lvl');
if ($lvl == 2){
$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) {
$query = 'UPDATE co_pianodeiconti3 SET numero='.prepare($numero).', descrizione='.prepare($descrizione).' WHERE id='.prepare($idconto);
$update_query = 'UPDATE co_pianodeiconti2 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)) {
flash()->info(tr('Descrizione conto modificata!'));
}
} else {
flash()->error(tr('Il numero scelto è già esistente!'));
$update_query = 'UPDATE co_pianodeiconti3 SET numero='.prepare($numero).', descrizione='.prepare($descrizione).' WHERE id='.prepare($idconto);
}
// Controllo che non sia stato usato un numero non valido del conto
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;
@ -72,10 +77,11 @@ switch (post('op')) {
// Eliminazione eventuali movimenti di apertura fatti finora
$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
$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);
@ -123,10 +129,11 @@ switch (post('op')) {
// Eliminazione eventuali movimenti di chiusura fatti finora
$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
$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);

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').'
</div>
<div class="clearfix"></div>
<div style="padding-left:10px;">';
// Livello 2
@ -49,11 +49,16 @@ foreach ($primo_livello as $conto_primo) {
foreach ($secondo_livello as $conto_secondo) {
// Livello 2
echo '
<div>
<div class="pull-right">
'.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>
<h5><b>'.$conto_secondo['numero'].' '.$conto_secondo['descrizione'].'</b></h5>
<div style="padding-left:10px;">
<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']));
// 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_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';
@ -102,7 +107,7 @@ foreach ($primo_livello as $conto_primo) {
$id_anagrafica = $conto_terzo['id_cliente'] ?: $conto_terzo['id_fornitore'];
echo '
<span class="hide tools">';
<span class="hide tools pull-right">';
// Stampa mastrino
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');
}
if ($numero_movimenti <= 0 && !empty($conto_terzo['can_delete'])) {
if ($numero_movimenti <= 0) {
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'].'">
<i class="fa fa-trash"></i>
@ -118,21 +123,19 @@ foreach ($primo_livello as $conto_primo) {
}
// 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'].'\');">
<i class="fa fa-edit"></i>
</button>';
}
echo '
</span>
&nbsp;'.$conto_secondo['numero'].'.'.$conto_terzo['numero'].' '.$conto_terzo['descrizione'].' '.(isset($id_anagrafica) ? Modules::link('Anagrafiche', $id_anagrafica, 'Anagrafica', null) : '').'
</span>
<div id="conto_'.$conto_terzo['id'].'" style="display:none;"></div>
</td>
<td width="100" align="right" valign="top">
'.moneyFormat(sum($totale_conto), 2).'
</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'].')">
<i class="fa fa-plus-circle"></i>
</button>
<br><br>
</div>';
}
echo '
</div>
<table class="table table-condensed table-hover">'
;
// Riepiloghi
@ -230,7 +233,7 @@ foreach ($primo_livello as $conto_primo) {
<big>'.moneyFormat(sum($pareggio1), 2).'</big>
</td>
<td width="50"></td>
<th class="text-right">
<big>'.tr('Totale a pareggio').':</big>
</th>
@ -248,7 +251,7 @@ foreach ($primo_livello as $conto_primo) {
<big>'.moneyFormat(sum($totale_ricavi), 2).'</big>
</td>
</tr>
<tr>
<th class="text-right">
<big>'.tr('Costi').':</big>
@ -257,7 +260,7 @@ foreach ($primo_livello as $conto_primo) {
<big>'.moneyFormat(sum($totale_costi), 2).'</big>
</td>
</tr>
<tr>
<th class="text-right">
<big>'.tr('Utile/perdita').':</big>
@ -290,17 +293,17 @@ if ($bilancio_gia_chiuso) {
<script>
$(document).ready(function(){
$("span[id^=movimenti-]").each(function() {
$("tr").each(function() {
$(this).on("mouseover", function() {
$(this).find(".tools").removeClass("hide");
});
$(this).on("mouseleave", function() {
$(this).find(".tools").addClass("hide");
});
$(this).on("click", function() {
var movimenti = $(this).parent().find("div[id^=conto_]");
var movimenti = $(this).parent().find("div[id^=conto_]");
if(!movimenti.html()) {
var id_conto = movimenti.attr("id").split("_").pop();
@ -309,7 +312,7 @@ $(document).ready(function(){
} else {
movimenti.slideToggle();
}
$(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) {
$("#main_loading").show();
$.ajax({
url: "<?php echo $structure->fileurl('dettagli_conto.php'); ?>",
type: "get",
@ -332,7 +335,7 @@ function load_movimenti(selector, id_conto) {
success: function(data){
$("#" + selector).html(data);
$("#" + selector).slideToggle();
$("#main_loading").fadeOut();
}
});

View File

@ -1,34 +1,42 @@
<?php
include_once __DIR__.'/../../core.php';
$idconto = get('id');
$lvl = get('lvl');
//Info conto
$q = 'SELECT * FROM co_pianodeiconti3 WHERE id='.prepare($idconto);
$rs = $dbo->fetchArray($q);
$numero = $rs[0]['numero'];
$descrizione = $rs[0]['descrizione'];
$idpianodeiconti2 = $rs[0]['idpianodeiconti2'];
// Info conto
if ($lvl == 2){
$query = 'SELECT *, idpianodeiconti1 AS idpianodeiconti FROM co_pianodeiconti2 WHERE id='.prepare($idconto);
} else {
$query = 'SELECT *, idpianodeiconti2 AS idpianodeiconti FROM co_pianodeiconti3 WHERE id='.prepare($idconto);
}
$info = $dbo->fetchOne($query);
?><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="backto" value="record-list">
<input type="hidden" name="idpianodeiconti2" value="<?php echo $idpianodeiconti2; ?>">
<input type="hidden" name="idconto" value="<?php echo $idconto; ?>">
<input type="hidden" name="lvl" value="<?php echo $lvl; ?>">
<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="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 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>
<br>
<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 class="clearfix"></div>
</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`;
-- 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);