Aggiunta colore record nei documenti in base allo stato #1366 #1155 #1240

This commit is contained in:
Pek5892 2023-09-27 17:04:00 +02:00
parent d0884fb87c
commit af2f79f817
16 changed files with 173 additions and 23 deletions

View File

@ -101,7 +101,7 @@ echo '
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstato", "required": 1, "values": "query=SELECT id, descrizione FROM co_staticontratti", "value": "$idstato$", "class": "unblockable" ]}
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstato", "required": 1, "values": "query=SELECT id, descrizione, colore AS _bgcolor_ FROM co_staticontratti ORDER BY descrizione", "value": "$idstato$", "class": "unblockable" ]}
</div>
</div>

View File

@ -106,16 +106,16 @@ if ($dir == 'entrata') {
if (setting('Cambia automaticamente stato ddt fatturati')) {
if ($record['stato'] == 'Fatturato' || $record['stato'] == 'Parzialmente fatturato') {
?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT * FROM dt_statiddt", "value": "$idstatoddt$", "extra": "readonly", "class": "unblockable" ]}
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "extra": "readonly", "class": "unblockable" ]}
<?php
} else {
?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT * FROM dt_statiddt WHERE descrizione IN('Bozza', 'Evaso', 'Parzialmente evaso')", "value": "$idstatoddt$", "class": "unblockable" ]}
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt WHERE descrizione IN('Bozza', 'Evaso', 'Parzialmente evaso') ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]}
<?php
}
} else {
?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT * FROM dt_statiddt", "value": "$idstatoddt$", "class": "unblockable" ]}
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoddt", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM dt_statiddt ORDER BY descrizione", "value": "$idstatoddt$", "class": "unblockable" ]}
<?php
}
?>

View File

@ -238,7 +238,7 @@ if ($dir == 'entrata') {
<?php
$query = 'SELECT * FROM co_statidocumento';
$query = 'SELECT *, colore AS _bgcolor_ FROM co_statidocumento';
if (empty($record['is_fiscale'])) {
$query .= " WHERE descrizione = 'Bozza'";
@ -250,6 +250,8 @@ elseif ($record['stato'] == 'Bozza') {
$query .= " WHERE descrizione IN ('Emessa', 'Bozza')";
}
$query .= ' ORDER BY descrizione';
?>
<?php if ($dir == 'entrata') {
$readonly = '"readonly":1,';

View File

@ -701,7 +701,7 @@ class Fattura extends Document
// In fase di duplicazione di una fattura non deve essere calcolato il numero progressivo ma questo deve
// essere generato in fase di emissione della stessa.
$new->numero_esterno = null;
$new->numero_esterno = '';
$new->numero = Fattura::getNextNumero($now, $new->direzione, $new->id_segment);
// Rimozione informazioni di Fattura Elettronica

View File

@ -60,16 +60,16 @@ if ($module['name'] == 'Ordini cliente') {
if (setting('Cambia automaticamente stato ordini fatturati')) {
if ($record['stato'] == 'Evaso' || $record['stato'] == 'Parzialmente evaso' || $record['stato'] == 'Fatturato' || $record['stato'] == 'Parzialmente fatturato') {
?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoordine", "required": 1, "values": "query=SELECT * FROM or_statiordine", "value": "$idstatoordine$", "extra": "readonly", "class": "unblockable" ]}
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoordine", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM or_statiordine ORDER BY descrizione", "value": "$idstatoordine$", "extra": "readonly", "class": "unblockable" ]}
<?php
} else {
?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoordine", "required": 1, "values": "query=SELECT * FROM or_statiordine WHERE descrizione IN('Bozza', 'Accettato', 'In attesa di conferma', 'Annullato')", "value": "$idstatoordine$", "class": "unblockable" ]}
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoordine", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM or_statiordine WHERE descrizione IN('Bozza', 'Accettato', 'In attesa di conferma', 'Annullato') ORDER BY descrizione", "value": "$idstatoordine$", "class": "unblockable" ]}
<?php
}
} else {
?>
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoordine", "required": 1, "values": "query=SELECT * FROM or_statiordine", "value": "$idstatoordine$", "class": "unblockable" ]}
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstatoordine", "required": 1, "values": "query=SELECT *, colore AS _bgcolor_ FROM or_statiordine ORDER BY descrizione", "value": "$idstatoordine$", "class": "unblockable" ]}
<?php
}
?>

View File

@ -115,7 +115,7 @@ echo '
</div>
<div class="col-md-3">
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstato", "required": 1, "values": "query=SELECT id, descrizione FROM co_statipreventivi", "value": "$idstato$", "class": "unblockable" ]}
{[ "type": "select", "label": "<?php echo tr('Stato'); ?>", "name": "idstato", "required": 1, "values": "query=SELECT id, descrizione, colore AS _bgcolor_ FROM co_statipreventivi ORDER BY descrizione", "value": "$idstato$", "class": "unblockable" ]}
</div>
</div>

View File

@ -24,6 +24,7 @@ switch (post('op')) {
$dbo->update('co_staticontratti', [
'descrizione' => (count($dbo->fetchArray('SELECT descrizione FROM co_staticontratti WHERE descrizione = '.prepare(post('descrizione')))) > 0) ? $dbo->fetchOne('SELECT descrizione FROM co_staticontratti WHERE id ='.$id_record)['descrizione'] : post('descrizione'),
'icona' => post('icona'),
'colore' => post('colore'),
'is_completato' => post('is_completato') ?: null,
'is_fatturabile' => post('is_fatturabile') ?: null,
'is_pianificabile' => post('is_pianificabile') ?: null,
@ -36,6 +37,7 @@ switch (post('op')) {
case 'add':
$descrizione = post('descrizione');
$icona = post('icona');
$colore = post('colore');
$is_completato = post('is_completato') ?: null;
$is_fatturabile = post('is_fatturabile') ?: null;
$is_pianificabile = post('is_pianificabile') ?: null;
@ -44,7 +46,7 @@ switch (post('op')) {
if (count($dbo->fetchArray('SELECT descrizione FROM co_staticontratti WHERE descrizione='.prepare($descrizione))) > 0) {
flash()->error(tr('Stato di contratto già esistente.'));
} else {
$query = 'INSERT INTO co_staticontratti(descrizione, icona, is_completato, is_fatturabile, is_pianificabile) VALUES ('.prepare($descrizione).', '.prepare($icona).', '.prepare($is_completato).', '.prepare($is_fatturabile).', '.prepare($is_pianificabile).' )';
$query = 'INSERT INTO co_staticontratti(descrizione, icona, colore, is_completato, is_fatturabile, is_pianificabile) VALUES ('.prepare($descrizione).', '.prepare($icona).', '.prepare($colore).', '.prepare($is_completato).', '.prepare($is_fatturabile).', '.prepare($is_pianificabile).' )';
$dbo->query($query);
$id_record = $dbo->lastInsertedID();
flash()->info(tr('Nuovo stato contratto aggiunto.'));

View File

@ -24,9 +24,13 @@ include_once __DIR__.'/../../core.php';
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-md-12">
<div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1 ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "required": 1, "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength='7'", "icon-after": "<div class='img-circle square'></div>" ]}
</div>
</div>
<div class="row">
@ -53,3 +57,13 @@ include_once __DIR__.'/../../core.php';
</div>
</div>
</form>
<script>
$(document).ready( function() {
$('.colorpicker').colorpicker({ format: 'hex' }).on('changeColor', function() {
$('#modals > div #colore_').parent().find('.square').css( 'background', $('#modals > div #colore_').val() );
});
$('#modals > div #colore_').parent().find('.square').css( 'background', $('#modals > div #colore_').val() );
});
</script>

View File

@ -33,14 +33,18 @@ if ($record['can_delete']) {
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
<div class="row">
<div class="col-md-5">
<div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$", "extra": "<?php echo $attr; ?>" ]}
</div>
<div class="col-md-4">
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Icona'); ?>", "name": "icona", "required": 1, "class": "text-center", "value": "$icona$", "extra": "", "icon-after": "<?php echo (!empty($record['icona'])) ? '<i class=\"'.$record['icona'].'\"></i>' : ''; ?>" ]}
</div>
<div class="col-md-2">
{[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "required": 1, "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength='7'", "icon-after": "<div class='img-circle square'></div>" ]}
</div>
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">
@ -78,3 +82,14 @@ if (!empty($record['can_delete'])) {
}
?>
<script>
$(document).ready( function() {
$('.colorpicker').colorpicker({ format: 'hex' }).on('changeColor', function() {
$('#colore').parent().find('.square').css( 'background', $('#colore').val() );
});
$('#colore').parent().find('.square').css( 'background', $('#colore').val() );
notifica();
});
</script>

View File

@ -24,6 +24,7 @@ switch (post('op')) {
$dbo->update('or_statiordine', [
'descrizione' => (count($dbo->fetchArray('SELECT descrizione FROM or_statiordine WHERE descrizione = '.prepare(post('descrizione')))) > 0) ? $dbo->fetchOne('SELECT descrizione FROM or_statiordine WHERE id ='.$id_record)['descrizione'] : post('descrizione'),
'icona' => post('icona'),
'colore' => post('colore'),
'completato' => post('completato') ?: null,
'is_fatturabile' => post('is_fatturabile') ?: null,
'impegnato' => post('impegnato') ?: null,
@ -36,6 +37,7 @@ switch (post('op')) {
case 'add':
$descrizione = post('descrizione');
$icona = post('icona');
$colore = post('colore');
$completato = post('completato') ?: null;
$is_fatturabile = post('is_fatturabile') ?: null;
$impegnato = post('impegnato') ?: null;
@ -44,7 +46,7 @@ switch (post('op')) {
if (count($dbo->fetchArray('SELECT descrizione FROM or_statiordine WHERE descrizione='.prepare($descrizione))) > 0) {
flash()->error(tr('Stato ordine già esistente.'));
} else {
$query = 'INSERT INTO or_statiordine(descrizione, icona, completato, is_fatturabile, impegnato) VALUES ('.prepare($descrizione).', '.prepare($icona).', '.prepare($completato).', '.prepare($is_fatturabile).', '.prepare($impegnato).' )';
$query = 'INSERT INTO or_statiordine(descrizione, icona, colore, completato, is_fatturabile, impegnato) VALUES ('.prepare($descrizione).', '.prepare($icona).', '.prepare($colore).','.prepare($completato).', '.prepare($is_fatturabile).', '.prepare($impegnato).' )';
$dbo->query($query);
$id_record = $dbo->lastInsertedID();
flash()->info(tr('Nuovo stato ordine aggiunto.'));
@ -54,7 +56,7 @@ switch (post('op')) {
case 'delete':
//scelgo se settare come eliminato o cancellare direttamente la riga se non è stato utilizzato negli ordini
if (count($dbo->fetchArray('SELECT id FROM or_statiordine WHERE idstato='.prepare($id_record))) > 0) {
if (count($dbo->fetchArray('SELECT id FROM or_statiordine WHERE id='.prepare($id_record))) > 0) {
$query = 'UPDATE or_statiordine SET deleted_at = NOW() WHERE can_delete = 1 AND id='.prepare($id_record);
} else {
$query = 'DELETE FROM or_statiordine WHERE can_delete = 1 AND id='.prepare($id_record);

View File

@ -24,9 +24,13 @@ include_once __DIR__.'/../../core.php';
<input type="hidden" name="backto" value="record-edit">
<div class="row">
<div class="col-md-12">
<div class="col-md-9">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1 ]}
</div>
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "required": 1, "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength='7'", "icon-after": "<div class='img-circle square'></div>" ]}
</div>
</div>
<div class="row">
@ -53,3 +57,13 @@ include_once __DIR__.'/../../core.php';
</div>
</div>
</form>
<script>
$(document).ready( function() {
$('.colorpicker').colorpicker({ format: 'hex' }).on('changeColor', function() {
$('#modals > div #colore_').parent().find('.square').css( 'background', $('#modals > div #colore_').val() );
});
$('#modals > div #colore_').parent().find('.square').css( 'background', $('#modals > div #colore_').val() );
});
</script>

View File

@ -33,14 +33,18 @@ if ($record['can_delete']) {
<input type="hidden" name="id_record" value="<?php echo $id_record; ?>">
<div class="row">
<div class="col-md-5">
<div class="col-md-4">
{[ "type": "text", "label": "<?php echo tr('Descrizione'); ?>", "name": "descrizione", "required": 1, "value": "$descrizione$", "extra": "<?php echo $attr; ?>" ]}
</div>
<div class="col-md-4">
<div class="col-md-3">
{[ "type": "text", "label": "<?php echo tr('Icona'); ?>", "name": "icona", "required": 1, "class": "text-center", "value": "$icona$", "extra": "", "icon-after": "<?php echo (!empty($record['icona'])) ? '<i class=\"'.$record['icona'].'\"></i>' : ''; ?>" ]}
</div>
<div class="col-md-2">
{[ "type": "text", "label": "<?php echo tr('Colore'); ?>", "name": "colore", "required": 1, "class": "colorpicker text-center", "value": "$colore$", "extra": "maxlength='7'", "icon-after": "<div class='img-circle square'></div>" ]}
</div>
<div class="col-md-3">
<div class="panel panel-primary">
<div class="panel-heading">
@ -78,3 +82,13 @@ if (!empty($record['can_delete'])) {
}
?>
<script>
$(document).ready( function() {
$('.colorpicker').colorpicker({ format: 'hex' }).on('changeColor', function() {
$('#colore').parent().find('.square').css( 'background', $('#colore').val() );
});
$('#colore').parent().find('.square').css( 'background', $('#colore').val() );
notifica();
});
</script>

87
update/2_4_50.sql Normal file
View File

@ -0,0 +1,87 @@
ALTER TABLE `co_staticontratti` ADD `colore` VARCHAR(7) NOT NULL AFTER `icona`;
ALTER TABLE `co_statidocumento` ADD `colore` VARCHAR(7) NOT NULL AFTER `icona`;
ALTER TABLE `dt_statiddt` ADD `colore` VARCHAR(7) NOT NULL AFTER `icona`;
ALTER TABLE `or_statiordine` ADD `colore` VARCHAR(7) NOT NULL AFTER `icona`;
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES ((SELECT id FROM zz_modules WHERE name = 'Stati dei contratti'), 'color_Colore', 'colore', '7', '0', '0', '1', '0', '', '', '1', '0', '0');
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES ((SELECT id FROM zz_modules WHERE name = 'Stati degli ordini'), 'color_Colore', 'colore', '7', '0', '0', '1', '0', '', '', '1', '0', '0');
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES ((SELECT id FROM zz_modules WHERE name = 'Ordini cliente'), '_bg_', 'or_statiordine.colore', '14', '0', '0', '1', '0', '', '', '0', '0', '0');
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES ((SELECT id FROM zz_modules WHERE name = 'Ordini fornitore'), '_bg_', 'or_statiordine.colore', '14', '0', '0', '1', '0', '', '', '0', '0', '0');
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES ((SELECT id FROM zz_modules WHERE name = 'Contratti'), '_bg_', 'co_staticontratti.colore', '14', '0', '0', '1', '0', '', '', '0', '0', '0');
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES ((SELECT id FROM zz_modules WHERE name = 'Ddt di vendita'), '_bg_', 'dt_statiddt.colore', '14', '0', '0', '1', '0', '', '', '0', '0', '0');
INSERT INTO `zz_views` (`id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `html_format`, `search_inside`, `order_by`, `visible`, `summable`, `default`) VALUES ((SELECT id FROM zz_modules WHERE name = 'Ddt di acquisto'), '_bg_', 'dt_statiddt.colore', '14', '0', '0', '1', '0', '', '', '0', '0', '0');
UPDATE `co_staticontratti` SET `colore` = '#ffef99' WHERE `co_staticontratti`.`descrizione` = 'Bozza';
UPDATE `co_staticontratti` SET `colore` = '#99e6ff' WHERE `co_staticontratti`.`descrizione` = 'In attesa di conferma';
UPDATE `co_staticontratti` SET `colore` = '#99ffff' WHERE `co_staticontratti`.`descrizione` = 'Accettato';
UPDATE `co_staticontratti` SET `colore` = '#e5e4e2' WHERE `co_staticontratti`.`descrizione` = 'Rifiutato';
UPDATE `co_staticontratti` SET `colore` = '#fdd9a0' WHERE `co_staticontratti`.`descrizione` = 'In lavorazione';
UPDATE `co_staticontratti` SET `colore` = '#98fb98' WHERE `co_staticontratti`.`descrizione` = 'Fatturato';
UPDATE `co_staticontratti` SET `colore` = '#88de69' WHERE `co_staticontratti`.`descrizione` = 'Pagato';
UPDATE `co_staticontratti` SET `colore` = '#5dd333' WHERE `co_staticontratti`.`descrizione` = 'Concluso';
UPDATE `co_staticontratti` SET `colore` = '#b4ff99' WHERE `co_staticontratti`.`descrizione` = 'Parzialmente fatturato';
UPDATE `co_statidocumento` SET `colore` = '#88de69' WHERE `co_statidocumento`.`descrizione` = 'Pagato';
UPDATE `co_statidocumento` SET `colore` = '#ffef99' WHERE `co_statidocumento`.`descrizione` = 'Bozza';
UPDATE `co_statidocumento` SET `colore` = '#99ffff' WHERE `co_statidocumento`.`descrizione` = 'Emessa';
UPDATE `co_statidocumento` SET `colore` = '#e5e4e2' WHERE `co_statidocumento`.`descrizione` = 'Annullata';
UPDATE `co_statidocumento` SET `colore` = '#98fb98' WHERE `co_statidocumento`.`descrizione` = 'Parzialmente pagato';
UPDATE `dt_statiddt` SET `colore` = '#ffef99' WHERE `dt_statiddt`.`descrizione` = 'Bozza';
UPDATE `dt_statiddt` SET `colore` = '#99ffff' WHERE `dt_statiddt`.`descrizione` = 'Evaso';
UPDATE `dt_statiddt` SET `colore` = '#98fb98' WHERE `dt_statiddt`.`descrizione` = 'Fatturato';
UPDATE `dt_statiddt` SET `colore` = '#b4ff99' WHERE `dt_statiddt`.`descrizione` = 'Parzialmente fatturato';
UPDATE `dt_statiddt` SET `colore` = '#FFDF80' WHERE `dt_statiddt`.`descrizione` = 'Parzialmente evaso';
UPDATE `or_statiordine` SET `colore` = '#ffef99' WHERE `or_statiordine`.`descrizione` = 'Bozza';
UPDATE `or_statiordine` SET `colore` = '#99ffff' WHERE `or_statiordine`.`descrizione` = 'Evaso';
UPDATE `or_statiordine` SET `colore` = '#FFDF80' WHERE `or_statiordine`.`descrizione` = 'Parzialmente evaso';
UPDATE `or_statiordine` SET `colore` = '#b4ff99' WHERE `or_statiordine`.`descrizione` = 'Parzialmente fatturato';
UPDATE `or_statiordine` SET `colore` = '#98fb98' WHERE `or_statiordine`.`descrizione` = 'Fatturato';
UPDATE `or_statiordine` SET `colore` = '#f9f5be' WHERE `or_statiordine`.`descrizione` = 'In attesa di conferma';
UPDATE `or_statiordine` SET `colore` = '#99E6FF' WHERE `or_statiordine`.`descrizione` = 'Accettato';
UPDATE `or_statiordine` SET `colore` = '#e5e4e2' WHERE `or_statiordine`.`descrizione` = 'Annullato';
UPDATE `co_statipreventivi` SET `colore` = '#ffef99' WHERE `co_statipreventivi`.`descrizione` = 'Bozza';
UPDATE `co_statipreventivi` SET `colore` = '#99e6ff' WHERE `co_statipreventivi`.`descrizione` = 'In attesa di conferma';
UPDATE `co_statipreventivi` SET `colore` = '#99ffff' WHERE `co_statipreventivi`.`descrizione` = 'Accettato';
UPDATE `co_statipreventivi` SET `colore` = '#e5e4e2' WHERE `co_statipreventivi`.`descrizione` = 'Rifiutato';
UPDATE `co_statipreventivi` SET `colore` = '#fdd9a0' WHERE `co_statipreventivi`.`descrizione` = 'In lavorazione';
UPDATE `co_statipreventivi` SET `colore` = '#d8bfd8' WHERE `co_statipreventivi`.`descrizione` = 'Concluso';
UPDATE `co_statipreventivi` SET `colore` = '#88de69' WHERE `co_statipreventivi`.`descrizione` = 'Pagato';
UPDATE `co_statipreventivi` SET `colore` = '#98fb98' WHERE `co_statipreventivi`.`descrizione` = 'Fatturato';
UPDATE `co_statipreventivi` SET `colore` = '#b4ff99' WHERE `co_statipreventivi`.`descrizione` = 'Parzialmente fatturato';
UPDATE `in_statiintervento` SET `colore` = '#ffef99' WHERE `in_statiintervento`.`descrizione` = 'Da programmare';
UPDATE `in_statiintervento` SET `colore` = '#98fb98' WHERE `in_statiintervento`.`descrizione` = 'Fatturato';
UPDATE `in_statiintervento` SET `colore` = '#d8bfd8' WHERE `in_statiintervento`.`descrizione` = 'Completato';
UPDATE `in_statiintervento` SET `colore` = '#99e6ff' WHERE `in_statiintervento`.`descrizione` = 'Programmato';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(`d`.`conteggio`>1, \'red\', co_statidocumento.colore)' WHERE `zz_modules`.`name` = 'Fatture di acquisto' AND `zz_views`.`name` = '_bg_';
UPDATE `zz_views` INNER JOIN `zz_modules` ON `zz_views`.`id_module` = `zz_modules`.`id` SET `zz_views`.`query` = 'IF(`dup`.`numero_esterno` IS NOT NULL, \'red\', co_statidocumento.colore)' WHERE `zz_modules`.`name` = 'Fatture di vendita' AND `zz_views`.`name` = '_bg_';
-- Allineamento query Fatture di vendita
UPDATE `zz_modules` SET `options` = "
SELECT
|select|
FROM
`co_documenti`
LEFT JOIN (SELECT SUM(`totale`) AS `totale`, `iddocumento` FROM `co_movimenti` WHERE `totale` > 0 AND `primanota` = 1 GROUP BY `iddocumento`) AS `primanota` ON `primanota`.`iddocumento` = `co_documenti`.`id`
LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`
LEFT JOIN (SELECT `iddocumento`, SUM(`subtotale` - `sconto`) AS `totale_imponibile`, SUM(`iva`) AS `iva` FROM `co_righe_documenti` GROUP BY `iddocumento`) AS righe ON `co_documenti`.`id` = `righe`.`iddocumento`
LEFT JOIN (SELECT `co_banche`.`id`, CONCAT(`co_banche`.`nome`, ' - ', `co_banche`.`iban`) AS descrizione FROM `co_banche` GROUP BY `co_banche`.`id`) AS banche ON `banche`.`id` =`co_documenti`.`id_banca_azienda`
LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
LEFT JOIN `fe_stati_documento` ON `co_documenti`.`codice_stato_fe` = `fe_stati_documento`.`codice`
LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id`
LEFT JOIN (SELECT COUNT(id) as emails, em_emails.id_record FROM em_emails INNER JOIN zz_operations ON zz_operations.id_email = em_emails.id WHERE id_module IN(SELECT id FROM zz_modules WHERE name = 'Fatture di vendita') AND `zz_operations`.`op` = 'send-email' GROUP BY em_emails.id_record) AS `email` ON `email`.`id_record` = `co_documenti`.`id`
LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
LEFT JOIN (SELECT `numero_esterno`, `id_segment`, `idtipodocumento`, `data` FROM `co_documenti` WHERE `co_documenti`.`idtipodocumento` IN( SELECT `id` FROM `co_tipidocumento` WHERE `dir` = 'entrata') AND `numero_esterno` != '' GROUP BY `id_segment`, `numero_esterno`, `idtipodocumento` HAVING COUNT(`numero_esterno`) > 1 |date_period(`co_documenti`.`data`)| ) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment` AND `dup`.`idtipodocumento` = `co_documenti`.`idtipodocumento`
WHERE
1=1 AND `dir` = 'entrata' |segment(`co_documenti`.`id_segment`)| |date_period(`co_documenti`.`data`)|
HAVING
2=2
ORDER BY
`co_documenti`.`data` DESC,
CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC" WHERE `name` = 'Fatture di vendita';