Introduzione gruppi scadenze

This commit is contained in:
Dasc3er 2021-09-17 09:42:52 +02:00 committed by Thomas Zilio
parent 475a194234
commit d35654b73c
22 changed files with 221 additions and 52 deletions

View File

@ -56,6 +56,8 @@ if (preg_match('/[`]*([a-z0-9_]*)[`]*[\.]*([`]*deleted_at[`]* IS NULL)/i', $quer
$query = str_replace($condition, '', $query);
}
$query = null;
$has_access = !empty($query) ? $dbo->fetchNum($query) !== 0 : true;
if ($has_access) {

View File

@ -280,10 +280,10 @@ switch (post('op')) {
->select('*', 'co_documenti.id AS id', 'co_documenti.data AS data')
->where('idanagrafica', $id_anagrafica)
->whereIn('idstatodocumento', [$stato1->id, $stato2->id])
->join('co_scadenziario', 'co_documenti.id', '=', 'co_scadenziario.iddocumento')
->where('co_scadenziario.da_pagare', '>', 'co_scadenziario.pagato')
->whereRaw('co_scadenziario.scadenza < NOW()')
->groupBy('co_scadenziario.iddocumento')
->join('co_scadenze', 'co_documenti.id', '=', 'co_scadenze.iddocumento')
->where('co_scadenze.da_pagare', '>', 'co_scadenze.pagato')
->whereRaw('co_scadenze.scadenza < NOW()')
->groupBy('co_scadenze.iddocumento')
->get();
$results = [];
@ -300,7 +300,7 @@ switch (post('op')) {
try {
$fattura->delete();
$dbo->query('DELETE FROM co_scadenziario WHERE iddocumento='.prepare($id_record));
$dbo->query('DELETE FROM co_scadenze WHERE iddocumento='.prepare($id_record));
$dbo->query('DELETE FROM co_movimenti WHERE iddocumento='.prepare($id_record));
// Azzeramento collegamento della rata contrattuale alla pianificazione

View File

@ -64,7 +64,7 @@ if (empty($record['is_fiscale'])) {
}
$modulo_prima_nota = Modules::get('Prima nota');
$totale_scadenze = $dbo->fetchOne('SELECT SUM(da_pagare - pagato) AS differenza, SUM(da_pagare) AS da_pagare FROM co_scadenziario WHERE iddocumento = '.prepare($id_record));
$totale_scadenze = $dbo->fetchOne('SELECT SUM(da_pagare - pagato) AS differenza, SUM(da_pagare) AS da_pagare FROM co_scadenze WHERE iddocumento = '.prepare($id_record));
if (!empty($record['is_fiscale'])) {
// Aggiunta insoluto
$registrazione_insoluto = 0;

View File

@ -34,6 +34,7 @@ use Modules\Fatture\Gestori\Scadenze as GestoreScadenze;
use Modules\Pagamenti\Pagamento;
use Modules\PrimaNota\Movimento;
use Modules\RitenuteContributi\RitenutaContributi;
use Modules\Scadenzario\Gruppo;
use Modules\Scadenzario\Scadenza;
use Plugins\DichiarazioniIntento\Dichiarazione;
use Plugins\ExportFE\FatturaElettronica;
@ -440,9 +441,15 @@ class Fattura extends Document
return $this->hasOne(Components\Riga::class, 'iddocumento')->where('id', $this->id_riga_bollo);
}
public function gruppoScadenze()
{
return $this->hasOne(Gruppo::class, 'id_documento');
}
public function scadenze()
{
return $this->hasMany(Scadenza::class, 'iddocumento')->orderBy('scadenza');
return $this->gruppoScadenze->scadenze()
->orderBy('scadenza');
}
public function movimentiContabili()

View File

@ -86,7 +86,7 @@ class Scadenze
*/
public function rimuovi()
{
database()->delete('co_scadenziario', ['iddocumento' => $this->fattura->id]);
database()->delete('co_scadenze', ['iddocumento' => $this->fattura->id]);
}
/**
@ -102,9 +102,10 @@ class Scadenze
$numero = $fattura->numero_esterno ?: $fattura->numero;
$descrizione = $fattura->tipo->descrizione.' numero '.$numero;
$scadenza = Scadenza::build($descrizione, $importo, $data_scadenza, $type, $is_pagato);
// TODO $descrizione Gruppo
$scadenza = Scadenza::build($importo, $data_scadenza, $type, $is_pagato);
$scadenza->documento()->associate($fattura);
$scadenza->fattura()->associate($fattura);
$scadenza->data_emissione = $fattura->data;
$scadenza->save();

View File

@ -67,7 +67,7 @@ $permetti_modelli = (count($id_documenti) + count($id_scadenze)) <= 1;
// Scadenze
foreach ($id_scadenze as $id_scadenza) {
$scadenza = $database->fetchOne('SELECT *, SUM(da_pagare - pagato) AS rata FROM co_scadenziario WHERE id='.prepare($id_scadenza));
$scadenza = $database->fetchOne('SELECT *, SUM(da_pagare - pagato) AS rata FROM co_scadenze WHERE id='.prepare($id_scadenza));
if (!empty($scadenza['iddocumento'])) {
$id_documenti[] = $scadenza['iddocumento'];
continue;
@ -148,9 +148,9 @@ foreach ($id_documenti as $id_documento) {
// Se sto registrando un insoluto, leggo l'ultima scadenza pagata altrimenti leggo la scadenza della fattura
if ($is_insoluto) {
$scadenze = $database->fetchArray('SELECT id, ABS(da_pagare) AS rata, iddocumento FROM co_scadenziario WHERE iddocumento='.prepare($id_documento).' AND ABS(da_pagare) = ABS(pagato) ORDER BY updated_at DESC LIMIT 0, 1');
$scadenze = $database->fetchArray('SELECT id, ABS(da_pagare) AS rata, iddocumento FROM co_scadenze WHERE iddocumento='.prepare($id_documento).' AND ABS(da_pagare) = ABS(pagato) ORDER BY updated_at DESC LIMIT 0, 1');
} else {
$scadenze = $database->fetchArray('SELECT id, ABS(da_pagare - pagato) AS rata, iddocumento FROM co_scadenziario WHERE iddocumento='.prepare($id_documento).' AND ABS(da_pagare) > ABS(pagato)'.(!empty($id_scadenze) ? 'AND id IN('.implode(',', $id_scadenze).')' : '').' ORDER BY YEAR(scadenza) ASC, MONTH(scadenza) ASC');
$scadenze = $database->fetchArray('SELECT id, ABS(da_pagare - pagato) AS rata, iddocumento FROM co_scadenze WHERE iddocumento='.prepare($id_documento).' AND ABS(da_pagare) > ABS(pagato)'.(!empty($id_scadenze) ? 'AND id IN('.implode(',', $id_scadenze).')' : '').' ORDER BY YEAR(scadenza) ASC, MONTH(scadenza) ASC');
}
// Selezione prima scadenza

View File

@ -143,7 +143,7 @@ class Mastrino extends Model
$database = database();
foreach ($documenti as $id_documento) {
// Verifico se la fattura è stata pagata tutta, così imposto lo stato a "Pagato"
$totali = $database->fetchOne('SELECT SUM(pagato) AS tot_pagato, SUM(da_pagare) AS tot_da_pagare FROM co_scadenziario WHERE iddocumento='.prepare($id_documento));
$totali = $database->fetchOne('SELECT SUM(pagato) AS tot_pagato, SUM(da_pagare) AS tot_da_pagare FROM co_scadenze WHERE iddocumento='.prepare($id_documento));
$totale_pagato = abs(floatval($totali['tot_pagato']));
$totale_da_pagare = abs(floatval($totali['tot_da_pagare']));

View File

@ -17,17 +17,24 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Modules\Scadenzario\Gruppo;
use Modules\Scadenzario\Scadenza;
include_once __DIR__.'/../../core.php';
switch (post('op')) {
case 'add':
// Creazione nuovo Gruppo Scadenze
$descrizione = post('descrizione');
$gruppo = Gruppo::build($descrizione);
// Creazione Scadenza associata al gruppo
$data = post('data');
$tipo = post('tipo');
$da_pagare = post('da_pagare');
$descrizione = post('descrizione');
$scadenza = Scadenza::build($gruppo, $da_pagare, $data, $tipo);
$dbo->query('INSERT INTO co_scadenziario(descrizione, tipo, data_emissione, scadenza, da_pagare, pagato) VALUES('.prepare($descrizione).', '.prepare($tipo).', CURDATE(), '.prepare($data).', '.prepare($da_pagare).", '0')");
$id_record = $dbo->lastInsertedID();
$id_record = $scadenza->id;
flash()->info(tr('Scadenza inserita!'));
break;
@ -77,7 +84,7 @@ switch (post('op')) {
$id_scadenza = post('id_scadenza')[$id];
if (!empty($id_scadenza)) {
$database->update('co_scadenziario', [
$database->update('co_scadenze', [
'descrizione' => $descrizione,
'da_pagare' => $da_pagare,
'pagato' => $pagato,
@ -88,10 +95,10 @@ switch (post('op')) {
], ['id' => $id_scadenza]);
if ($da_pagare == 0) {
$database->delete('co_scadenziario', ['id' => $id]);
$database->delete('co_scadenze', ['id' => $id]);
}
} else {
$database->insert('co_scadenziario', [
$database->insert('co_scadenze', [
'descrizione' => $descrizione,
'tipo' => $tipo,
'iddocumento' => $iddocumento,
@ -116,7 +123,8 @@ switch (post('op')) {
break;
case 'delete':
$dbo->query("DELETE FROM co_scadenziario WHERE id='".$id_record."'");
$gruppo->delete();
flash()->info(tr('Scadenza eliminata!'));
break;
}

View File

@ -19,7 +19,7 @@
include_once __DIR__.'/../../core.php';
if (empty($dbo->fetchArray('SELECT * FROM co_scadenziario'))) {
if (empty($dbo->fetchArray('SELECT * FROM co_scadenze'))) {
$class = 'muted';
$disabled = 'disabled';
} else {

View File

@ -106,7 +106,7 @@ if (!empty($documento)) {
'.Modules::link($documento->module, $record['iddocumento'], '<i class="fa fa-folder-open"></i> '.tr('Apri documento'), null, 'class="btn btn-primary"');
} else {
$scadenza = $dbo->fetchOne('SELECT * FROM co_scadenziario WHERE id = '.prepare($id_record));
$scadenza = $dbo->fetchOne('SELECT * FROM co_scadenze WHERE id = '.prepare($id_record));
echo input([
'type' => 'textarea',
@ -219,7 +219,7 @@ $id_scadenza = $id_record;
// Forzatura per allegare file sempre al primo record
if (!empty($documento)) {
$id_scadenza = $dbo->fetchOne('SELECT id FROM co_scadenziario WHERE iddocumento='.prepare($documento->id).' ORDER BY id')['id'];
$id_scadenza = $dbo->fetchOne('SELECT id FROM co_scadenze WHERE iddocumento='.prepare($documento->id).' ORDER BY id')['id'];
}
?>

View File

@ -17,20 +17,21 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use Modules\Fatture\Fattura;
use Modules\Scadenzario\Gruppo;
include_once __DIR__.'/../../core.php';
if (isset($id_record)) {
$record = $dbo->fetchOne('SELECT * FROM co_scadenziario WHERE id = '.prepare($id_record));
$documento = Fattura::find($record['iddocumento']);
$gruppo = Gruppo::find($id_record);
$documento = $gruppo->fattura;
$scadenze = $gruppo->scadenze;
$record = $gruppo->toArray();
// Scelgo la query in base alla scadenza
if (!empty($documento)) {
$scadenze = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento = '.prepare($documento->id).' ORDER BY scadenza ASC');
$totale_da_pagare = $documento->netto;
} else {
$scadenze = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE id = '.prepare($id_record).' ORDER BY scadenza ASC');
$totale_da_pagare = sum(array_column($scadenze, 'da_pagare'));
$totale_da_pagare = sum(array_column($scadenze->toArray(), 'da_pagare'));
}
}

View File

@ -0,0 +1,66 @@
<?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/>.
*/
namespace Modules\Scadenzario;
use Carbon\Carbon;
use Common\SimpleModelTrait;
use Illuminate\Database\Eloquent\Model;
use Modules\Fatture\Fattura;
class Gruppo extends Model
{
use SimpleModelTrait;
protected $table = 'co_gruppi_scadenze';
protected $dates = [
'data_emissione',
];
public static function build($descrizione, Fattura $fattura = null)
{
$model = new static();
$model->descrizione = $descrizione;
if (!empty($fattura)) {
$model->fattura()->associate($fattura);
$model->data_emissione = $fattura->data;
} else {
$model->data_emissione = new Carbon();
}
$model->save();
return $model;
}
// Relazioni Eloquent
public function fattura()
{
return $this->belongsTo(Fattura::class, 'id_documento');
}
public function scadenze()
{
return $this->hasMany(Scadenza::class, 'id_gruppo');
}
}

View File

@ -27,21 +27,22 @@ class Scadenza extends Model
{
use SimpleModelTrait;
protected $table = 'co_scadenziario';
protected $table = 'co_scadenze';
protected $dates = [
'scadenza',
'data_pagamento',
];
public static function build($descrizione, $importo, $data_scadenza, $type = 'fattura', $is_pagato = false)
public static function build(Gruppo $gruppo, $importo, $data_scadenza, $tipo = 'fattura', $is_pagato = false)
{
$model = new static();
$model->descrizione = $descrizione;
$model->gruppo()->associate($gruppo);
$model->scadenza = $data_scadenza;
$model->da_pagare = $importo;
$model->tipo = $type;
$model->tipo = $tipo;
$model->pagato = $is_pagato ? $importo : 0;
$model->data_pagamento = $is_pagato ? $data_scadenza : null;
@ -51,8 +52,25 @@ class Scadenza extends Model
return $model;
}
public function documento()
public function save(array $options = [])
{
return $this->belongsTo(Fattura::class, 'iddocumento');
$result = parent::save($options);
// Trigger per il gruppo al cambiamento della scadenza
$this->gruppo->triggerScadenza($this);
return $result;
}
// Relazioni Eloquent
public function gruppo()
{
return $this->belongsTo(Gruppo::class, 'id_gruppo');
}
public function fattura()
{
return $this->gruppo->fattura();
}
}

View File

@ -17,17 +17,17 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
$r = $dbo->fetchOne('SELECT co_scadenziario.*, co_documenti.*,
$r = $dbo->fetchOne('SELECT co_scadenze.*, co_documenti.*,
an_anagrafiche.email,
an_anagrafiche.pec,
an_anagrafiche.ragione_sociale,
co_scadenziario.da_pagare - co_scadenziario.pagato AS totale,
co_scadenze.da_pagare - co_scadenze.pagato AS totale,
(SELECT pec FROM em_accounts WHERE em_accounts.id='.prepare($template['id_account']).') AS is_pec,
(SELECT descrizione FROM co_pagamenti WHERE co_pagamenti.id = co_documenti.idpagamento) AS pagamento
FROM co_scadenziario
INNER JOIN co_documenti ON co_documenti.id = co_scadenziario.iddocumento
FROM co_scadenze
INNER JOIN co_documenti ON co_documenti.id = co_scadenze.iddocumento
INNER JOIN an_anagrafiche ON co_documenti.idanagrafica=an_anagrafiche.idanagrafica
WHERE co_scadenziario.pagato != co_scadenziario.da_pagare AND co_scadenziario.iddocumento = (SELECT iddocumento FROM co_scadenziario s WHERE id='.prepare($id_record).')');
WHERE co_scadenze.pagato != co_scadenze.da_pagare AND co_scadenze.iddocumento = (SELECT iddocumento FROM co_scadenze s WHERE id='.prepare($id_record).')');
$logo_azienda = str_replace(base_dir(), base_path(), App::filepath('templates/base|custom|/logo_azienda.jpg'));

View File

@ -37,10 +37,9 @@ switch (filter('op')) {
//aggiorno anche il segmento
$dbo->update('zz_segments', [
'clause' => 'co_scadenziario.tipo="'.$nome.'"',
'clause' => 'co_gruppi_scadenze.tipo="'.$nome.'"',
'name' => 'Scadenzario '.$nome,
], [
'clause' => 'co_scadenziario.tipo="'.$nome_prev.'"',
'name' => 'Scadenzario '.$nome_prev,
'id_module' => Modules::get('Scadenzario')['id'],
]);
@ -75,7 +74,7 @@ switch (filter('op')) {
$dbo->insert('zz_segments', [
'id_module' => Modules::get('Scadenzario')['id'],
'name' => 'Scadenzario '.$nome,
'clause' => 'co_scadenziario.tipo="'.$nome.'"',
'clause' => 'co_scadenze.tipo="'.$nome.'"',
'position' => 'WHR',
]);
@ -99,7 +98,7 @@ switch (filter('op')) {
break;
case 'delete':
$documenti = $dbo->fetchNum('SELECT id FROM co_scadenziario WHERE tipo = (SELECT nome FROM co_tipi_scadenze WHERE id = '.prepare($id_record).')');
$documenti = $dbo->fetchNum('SELECT id FROM co_scadenze WHERE tipo = (SELECT nome FROM co_tipi_scadenze WHERE id = '.prepare($id_record).')');
if (isset($id_record) && empty($documenti)) {
$dbo->query('DELETE FROM `co_tipi_scadenze` WHERE `can_delete` = 1 AND `id`='.prepare($id_record));

View File

@ -20,7 +20,7 @@
include_once __DIR__.'/../../core.php';
// Collegamenti con scadenzaio (numerici)
$scadenze = $dbo->fetchNum('SELECT id FROM co_scadenziario WHERE tipo = '.prepare($record['nome']));
$scadenze = $dbo->fetchNum('SELECT id FROM co_scadenze WHERE tipo = '.prepare($record['nome']));
if ($record['can_delete'] and empty($scadenze)) {
$attr = '';

View File

@ -1580,8 +1580,8 @@ class FatturaElettronica
'CondizioniPagamento' => ($co_pagamenti['prc'] == 100) ? 'TP02' : 'TP01',
];
$co_scadenziario = $database->fetchArray('SELECT * FROM `co_scadenziario` WHERE `iddocumento` = '.prepare($documento['id']));
foreach ($co_scadenziario as $scadenza) {
$co_scadenze = $database->fetchArray('SELECT * FROM `co_scadenze` WHERE `iddocumento` = '.prepare($documento['id']));
foreach ($co_scadenze as $scadenza) {
$pagamento = [
'ModalitaPagamento' => $co_pagamenti['codice_modalita_pagamento_fe'],
'DataScadenzaPagamento' => $scadenza['scadenza'],

View File

@ -70,7 +70,7 @@ echo "
</tr>';
// Elenco scadenze
$rs2 = $dbo->fetchArray('SELECT * FROM co_scadenziario WHERE iddocumento='.prepare($id_record).' ORDER BY `data_emissione` ASC');
$rs2 = $dbo->fetchArray('SELECT * FROM co_scadenze WHERE iddocumento='.prepare($id_record).' ORDER BY `data_emissione` ASC');
if (!empty($rs2)) {
for ($i = 0; $i < sizeof($rs2); ++$i) {
echo "

View File

@ -47,7 +47,7 @@ if (!empty($search_filters)) {
$module_query = str_replace('2=2', '2=2 AND ('.implode(' AND ', $search_filters).') ', $module_query);
}
$module_query = str_replace('1=1', '1=1 AND ABS(`co_scadenziario`.`pagato`) < ABS(`co_scadenziario`.`da_pagare`) ', $module_query);
$module_query = str_replace('1=1', '1=1 AND ABS(`co_scadenze`.`pagato`) < ABS(`co_scadenze`.`da_pagare`) ', $module_query);
// Filtri derivanti dai permessi (eventuali)
$module_query = Modules::replaceAdditionals($id_module, $module_query);

66
update/scadenze.sql Normal file
View File

@ -0,0 +1,66 @@
-- Aggiunto nuovo sistema di gestione Scadenze
CREATE TABLE IF NOT EXISTS `co_gruppi_scadenze` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_documento` int(11) DEFAULT NULL,
`descrizione` varchar(255) NOT NULL,
`data_emissione` date NOT NULL,
`totale_pagato` decimal(12, 6) NOT NULL,
`created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY(`id`),
FOREIGN KEY (`id_documento`) REFERENCES `co_documenti`(`id`)
) ENGINE=InnoDB;
ALTER TABLE `co_scadenze` RENAME TO `co_scadenze`;
ALTER TABLE `co_scadenze` ADD `id_gruppo` INT(11), ADD FOREIGN KEY (`id_gruppo`) REFERENCES `co_gruppi_scadenze`(`id`);
ALTER TABLE `co_gruppi_scadenze` ADD `id_scadenza_origine` INT(11);
-- Inserimento gruppi per Documenti
INSERT INTO `co_gruppi_scadenze` (`id_scadenza_origine`, `id_documento`, `descrizione`, `data_emissione`, `totale_pagato`) SELECT `id`, `iddocumento`, `descrizione`, `data_emissione`, SUM(`pagato`) FROM `co_scadenze` WHERE `iddocumento` != 0 GROUP BY `iddocumento`;
UPDATE `co_scadenze` INNER JOIN `co_gruppi_scadenze` ON `co_scadenze`.`iddocumento` = `co_gruppi_scadenze`.`id_documento` SET `co_scadenze`.`id_gruppo` = `co_gruppi_scadenze`.`id`;
-- Inserimento gruppi per Scadenze indipendenti
INSERT INTO `co_gruppi_scadenze` (`id_scadenza_origine`, `id_documento`, `descrizione`, `data_emissione`, `totale_pagato`) SELECT `id`, `iddocumento`, `descrizione`, `data_emissione`, `pagato` FROM `co_scadenze` WHERE `iddocumento` = 0;
UPDATE `co_scadenze` INNER JOIN `co_gruppi_scadenze` ON `co_scadenze`.`id` = `co_gruppi_scadenze`.`id_scadenza_origine` SET `co_scadenze`.`id_gruppo` = `co_gruppi_scadenze`.`id`;
-- ALTER TABLE `co_gruppi_scadenze` DROP `id_scadenza_origine`;
-- Correzioni per il modulo Scadenzario
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_scadenze`
INNER JOIN `co_gruppi_scadenze` ON `co_gruppi_scadenze`.`id` = `co_scadenze`.`id_gruppo`
LEFT JOIN `co_documenti` ON `co_gruppi_scadenze`.`id_documento` = `co_documenti`.`id`
LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`
LEFT JOIN `co_pagamenti` ON `co_documenti`.`idpagamento` = `co_pagamenti`.`id`
LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`
LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`
WHERE 1=1 AND
(`co_statidocumento`.`descrizione` IS NULL OR `co_statidocumento`.`descrizione` IN(''Emessa'',''Parzialmente pagato'',''Pagato''))
HAVING 2=2
ORDER BY `co_scadenze`.`scadenza` ASC' WHERE `zz_modules`.`name` = 'Scadenzario';
INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `visible`, `format`) VALUES
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Scadenzario'), '_link_record_', 'co_gruppi_scadenze.id', 0, 0, 0),
(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Scadenzario'), '_link_hash_', 'CONCAT(''scadenza_'', co_scadenze.id)', 0, 0, 0);
UPDATE `zz_views` SET `query` = 'co_scadenze.scadenza' WHERE `name` = 'Data scadenza' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name = 'Scadenzario');
UPDATE `zz_views` SET `query` = 'co_scadenze.id' WHERE `name` = 'id' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name = 'Scadenzario');
UPDATE `zz_views` SET `query` = 'co_gruppi_scadenze.data_emissione' WHERE `name` = 'Data emissione' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name = 'Scadenzario');
UPDATE `zz_views` SET `query` = 'co_scadenze.da_pagare' WHERE `name` = 'Importo' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name = 'Scadenzario');
UPDATE `zz_views` SET `query` = 'co_scadenze.pagato' WHERE `name` = 'Pagato' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name = 'Scadenzario');
UPDATE `zz_views` SET `query` = 'co_gruppi_scadenze.descrizione' WHERE `name` = 'Descrizione scadenza' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name = 'Scadenzario');
UPDATE `zz_views` SET `query` = 'IF(an_anagrafiche.ragione_sociale IS NULL, co_gruppi_scadenze.descrizione, an_anagrafiche.ragione_sociale)' WHERE `name` = 'Anagrafica' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name = 'Scadenzario');
UPDATE `zz_views` SET `query` = 'co_scadenze.note' WHERE `name` = 'Note' AND `id_module` = (SELECT `id` FROM `zz_modules` WHERE name = 'Scadenzario');
UPDATE `zz_widgets` SET `query` = REPLACE(`query`, 'co_scadenziario', 'co_scadenze');
UPDATE `zz_segments` SET `clause` = REPLACE(`clause`, 'co_scadenziario', 'co_scadenze');

View File

@ -34,7 +34,8 @@ return [
'co_ritenutaacconto',
'co_ritenuta_contributi',
'co_rivalse',
'co_scadenziario',
'co_gruppi_scadenze',
'co_scadenze',
'co_staticontratti',
'co_statidocumento',
'co_statipreventivi',