From c2f2aa99fa002e743409575b35155df256a9725e Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Wed, 9 Sep 2020 16:55:45 +0200 Subject: [PATCH] Revisione modulo Banche Revisione del modulo Banche per aggiungere il supporto alle Anagrafiche, in modo da unificare le informazioni relative. --- config/namespaces.php | 1 + editor.php | 5 +- locale/catalog.pot | 2 +- locale/en_GB/en_GB.po | 2 +- modules/anagrafiche/ajax/select.php | 2 +- modules/anagrafiche/edit.php | 13 ++-- modules/banche/actions.php | 71 +++++++++++---------- modules/banche/add.php | 23 +++++-- modules/banche/ajax/select.php | 47 ++++++++++++++ modules/banche/edit.php | 20 ++++-- modules/banche/init.php | 6 +- modules/banche/src/Banca.php | 61 ++++++++++++++++++ modules/fatture/edit.php | 5 +- modules/fatture/src/Fattura.php | 11 ++-- plugins/exportFE/src/FatturaElettronica.php | 12 ++-- templates/fatture/init.php | 6 +- update/2_4_18.sql | 30 +++++++++ 17 files changed, 245 insertions(+), 72 deletions(-) create mode 100644 modules/banche/ajax/select.php create mode 100644 modules/banche/src/Banca.php diff --git a/config/namespaces.php b/config/namespaces.php index 4730efc04..719996745 100755 --- a/config/namespaces.php +++ b/config/namespaces.php @@ -22,6 +22,7 @@ return [ 'modules/aggiornamenti' => 'Modules\Aggiornamenti', 'modules/anagrafiche' => 'Modules\Anagrafiche', 'modules/backups' => 'Modules\Backups', + 'modules/banche' => 'Modules\Banche', 'modules/emails' => 'Modules\Emails', 'modules/articoli' => 'Modules\Articoli', 'modules/checklists' => 'Modules\Checklists', diff --git a/editor.php b/editor.php index 4e5ad9c6e..f1a76c808 100755 --- a/editor.php +++ b/editor.php @@ -39,7 +39,10 @@ if (!empty($id_record)) { ]); Util\Query::setSegments(true); } -$query = str_replace(['AND `deleted_at` IS NULL', '`deleted_at` IS NULL AND', '`deleted_at` IS NULL', 'AND deleted_at IS NULL', 'deleted_at IS NULL AND', 'deleted_at IS NULL'], '', $query); +// Replace automatico del campo deleted_at se non specifico a una tabella +if (!str_contains($query, '.`deleted_at`') && !str_contains($query, '.deleted_at')) { + $query = str_replace(['AND `deleted_at` IS NULL', '`deleted_at` IS NULL AND', '`deleted_at` IS NULL', 'AND deleted_at IS NULL', 'deleted_at IS NULL AND', 'deleted_at IS NULL'], '', $query); +} $has_access = !empty($query) ? $dbo->fetchNum($query) !== 0 : true; diff --git a/locale/catalog.pot b/locale/catalog.pot index 1cbe5d709..ee6b08704 100755 --- a/locale/catalog.pot +++ b/locale/catalog.pot @@ -3404,7 +3404,7 @@ msgid "Ci sono stati alcuni errori durante il salvataggio!" msgstr "" #: modules/banche/actions.php:43 -msgid "Aggiunta nuova _TYPE_" +msgid "Aggiunta nuova _TYPE_" msgstr "" #: modules/banche/actions.php:57 diff --git a/locale/en_GB/en_GB.po b/locale/en_GB/en_GB.po index 116a8142e..943aa6885 100755 --- a/locale/en_GB/en_GB.po +++ b/locale/en_GB/en_GB.po @@ -3985,7 +3985,7 @@ msgid "Ci sono stati alcuni errori durante il salvataggio!" msgstr "There were some errors during the saving!" #: modules/banche/actions.php:43 -msgid "Aggiunta nuova _TYPE_" +msgid "Aggiunta nuova _TYPE_" msgstr "Added new _TYPE_" #: modules/banche/actions.php:57 diff --git a/modules/anagrafiche/ajax/select.php b/modules/anagrafiche/ajax/select.php index d2b88a04c..5b25599af 100755 --- a/modules/anagrafiche/ajax/select.php +++ b/modules/anagrafiche/ajax/select.php @@ -334,7 +334,7 @@ switch ($resource) { * - idanagrafica */ case 'dichiarazioni_intento': - $query = "SELECT id, CONCAT_WS(' - ', numero_protocollo, numero_progressivo) as descrizione FROM co_dichiarazioni_intento |where| ORDER BY data"; + $query = "SELECT id, CONCAT_WS(' - ', numero_protocollo, numero_progressivo) AS descrizione FROM co_dichiarazioni_intento |where| ORDER BY data"; foreach ($elements as $element) { $filter[] = 'id='.prepare($element); diff --git a/modules/anagrafiche/edit.php b/modules/anagrafiche/edit.php index e0f3faac7..21514d1c1 100755 --- a/modules/anagrafiche/edit.php +++ b/modules/anagrafiche/edit.php @@ -378,7 +378,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
-
+
@@ -426,7 +427,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
- {[ "type": "select", "label": "'.tr('Banca predefinita').'", "name": "idbanca_vendite", "values": "query=SELECT id, nome AS descrizione FROM co_banche WHERE deleted_at IS NULL ORDER BY nome ASC", "value": "$idbanca_vendite$", "icon-after": "add|'.Modules::get('Banche')['id'].'", "help": "'.tr('Banca predefinita su cui accreditare i pagamenti.').'" ]} + {[ "type": "select", "label": "'.tr('Banca predefinita').'", "name": "idbanca_vendite", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica->id]).', "value": "$idbanca_vendite$", "icon-after": "add|'.Modules::get('Banche')['id'].'|id_anagrafica='.$anagrafica->id.'", "help": "'.tr('Banca predefinita su cui accreditare i pagamenti').'" ]}
@@ -461,7 +462,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
'; // Collegamento con il conto - $conto = $dbo->fetchOne('SELECT co_pianodeiconti3.id, co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione as descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_cliente'])); + $conto = $dbo->fetchOne('SELECT co_pianodeiconti3.id, co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione AS descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_cliente'])); echo '
@@ -488,7 +489,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
- {[ "type": "select", "label": "'.tr('Banca predefinita').'", "name": "idbanca_acquisti", "values": "query=SELECT id, nome AS descrizione FROM co_banche ORDER BY nome ASC", "value": "$idbanca_acquisti$", "icon-after": "add|'.Modules::get('Banche')['id'].'" ]} + {[ "type": "select", "label": "'.tr('Banca predefinita').'", "name": "idbanca_acquisti", "ajax-source": "banche", "select-options": '.json_encode(['id_anagrafica' => $anagrafica->id]).', "value": "$idbanca_acquisti$", "icon-after": "add|'.Modules::get('Banche')['id'].'|id_anagrafica='.$anagrafica->id.'" ]}
@@ -508,7 +509,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
'; // Collegamento con il conto - $conto = $dbo->fetchOne('SELECT co_pianodeiconti3.id, co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione as descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_fornitore'])); + $conto = $dbo->fetchOne('SELECT co_pianodeiconti3.id, co_pianodeiconti2.numero as numero, co_pianodeiconti3.numero as numero_conto, co_pianodeiconti3.descrizione AS descrizione FROM co_pianodeiconti3 INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE co_pianodeiconti3.id = '.prepare($record['idconto_fornitore'])); echo '
diff --git a/modules/banche/actions.php b/modules/banche/actions.php index 0b5b4c39d..f3e8ac039 100755 --- a/modules/banche/actions.php +++ b/modules/banche/actions.php @@ -17,59 +17,60 @@ * along with this program. If not, see . */ +use Modules\Anagrafiche\Anagrafica; +use Modules\Banche\Banca; + include_once __DIR__.'/../../core.php'; switch (filter('op')) { - case 'update': + case 'add': + $id_anagrafica = filter('id_anagrafica'); + $anagrafica = Anagrafica::find($id_anagrafica); + $nome = filter('nome'); + $iban = filter('iban'); + $bic = filter('bic'); - if (isset($nome)) { - $array = [ - 'nome' => $nome, - 'filiale' => post('filiale'), - 'iban' => post('iban'), - 'bic' => post('bic'), - 'id_pianodeiconti3' => post('id_pianodeiconti3'), - 'note' => post('note'), - ]; + $banca = Banca::build($anagrafica, $nome, $iban, $bic); + $id_record = $banca->id; - if (!empty($id_record)) { - $dbo->update('co_banche', $array, ['id' => $id_record]); - } - - flash()->info(tr('Salvataggio completato.')); - } else { - flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!')); + if (isAjaxRequest()) { + echo json_encode([ + 'id' => $id_record, + 'text' => $nome, + ]); } + // Imposizione della banca come predefinita per l'Anagrafica se non impostato altrimenti + $anagrafica->idbanca_vendite = $anagrafica->idbanca_vendite ?: $id_record; + $anagrafica->idbanca_acquisti = $anagrafica->idbanca_acquisti ?: $id_record; + $anagrafica->save(); + + flash()->info(tr('Aggiunta nuova _TYPE_', [ + '_TYPE_' => 'banca', + ])); + break; - case 'add': + case 'update': $nome = filter('nome'); - $bic = filter('bic'); - $iban = filter('iban'); - if (isset($nome)) { - $dbo->query('INSERT INTO `co_banche` (`nome`, `bic`, `iban`) VALUES ('.prepare($nome).', '.prepare($bic).', '.prepare($iban).')'); - $id_record = $dbo->lastInsertedID(); + $banca->nome = post('nome'); + $banca->iban = post('iban'); + $banca->bic = post('bic'); - if (isAjaxRequest()) { - echo json_encode(['id' => $id_record, 'text' => $nome]); - } + $banca->note = post('note'); + $banca->id_pianodeiconti3 = post('id_pianodeiconti3'); + $banca->filiale = post('filiale'); - flash()->info(tr('Aggiunta nuova _TYPE_', [ - '_TYPE_' => 'banca', - ])); - } else { - flash()->error(tr('Ci sono stati alcuni errori durante il salvataggio!')); - } + $banca->save(); + + flash()->info(tr('Salvataggio completato')); break; case 'delete': - $dbo->update('co_banche', [ - 'deleted_at' => date('Y-m-d H:i:s'), - ], ['id' => $id_record]); + $banca->delete(); flash()->info(tr('_TYPE_ eliminata con successo!', [ '_TYPE_' => 'Banca', diff --git a/modules/banche/add.php b/modules/banche/add.php index bba54d91a..c2486ab31 100755 --- a/modules/banche/add.php +++ b/modules/banche/add.php @@ -19,29 +19,38 @@ include_once __DIR__.'/../../core.php'; -?>
+$id_anagrafica = filter('id_anagrafica'); + +echo ' +
-
- {[ "type": "text", "label": "", "name": "nome", "required": "1" ]} +
+ {[ "type": "select", "label": "'.tr('Anagrafica').'", "name": "id_anagrafica", "required": "1", "value": "$id_anagrafica$", "ajax-source": "anagrafiche", "value": "'.$id_anagrafica.'", "disabled": "'.intval(!empty($id_anagrafica)).'" ]} +
+ +
+ {[ "type": "text", "label": "'.tr('Nome').'", "name": "nome", "required": "1" ]}
- {[ "type": "text", "label": "", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]} + {[ "type": "text", "label": "'.tr('IBAN').'", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]}
- {[ "type": "text", "label": "", "name": "bic", "class": "alphanumeric-mask", "maxlength": 11, "value": "$bic$" ]} + {[ "type": "text", "label": "'.tr('BIC').'", "name": "bic", "required": "1", "class": "alphanumeric-mask", "maxlength": 11, "value": "$bic$" ]}
- +
- +'; diff --git a/modules/banche/ajax/select.php b/modules/banche/ajax/select.php new file mode 100644 index 000000000..162bf5582 --- /dev/null +++ b/modules/banche/ajax/select.php @@ -0,0 +1,47 @@ +. + */ + +include_once __DIR__.'/../../../core.php'; + +switch ($resource) { + /* + * Opzioni utilizzate: + * - id_anagrafica + */ + case 'banche': + $query = "SELECT id, CONCAT (nome, ' - ' , iban) AS descrizione FROM co_banche |where| ORDER BY nome"; + + foreach ($elements as $element) { + $filter[] = 'id = '.prepare($element); + } + + if (empty($filter)) { + $where[] = 'deleted_at IS NULL'; + } + + $where[] = 'id_anagrafica='.prepare($superselect['id_anagrafica']); + + if (!empty($search)) { + $search_fields[] = 'nome LIKE '.prepare('%'.$search.'%'); + $search_fields[] = 'filiale LIKE '.prepare('%'.$search.'%'); + $search_fields[] = 'iban LIKE '.prepare('%'.$search.'%'); + } + + break; +} diff --git a/modules/banche/edit.php b/modules/banche/edit.php index 817b26bd1..47e4a2f53 100755 --- a/modules/banche/edit.php +++ b/modules/banche/edit.php @@ -20,7 +20,6 @@ include_once __DIR__.'/../../core.php'; ?>
- @@ -32,24 +31,35 @@ include_once __DIR__.'/../../core.php';
-
- {[ "type": "text", "label": "", "name": "nome", "required": "1", "value": "$nome$" ]} +
+ {[ "type": "select", "label": "", "name": "id_anagrafica", "required": "1", "value": "$id_anagrafica$", "ajax-source": "anagrafiche", "disabled": 1 ]}
-
+ +
+ {[ "type": "text", "label": "", "name": "nome", "required": "1", "value": "$nome$" ]} +
+
+ +
+
{[ "type": "text", "label": "", "name": "filiale", "value": "$filiale$" ]}
-
+ +
{[ "type": "select", "label": "", "name": "id_pianodeiconti3", "value": "$id_pianodeiconti3$", "values": "query=SELECT id, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2 = 1" ]}
+
{[ "type": "text", "label": "", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]}
+
{[ "type": "text", "label": "", "name": "bic", "class": "alphanumeric-mask", "maxlength": 11, "value": "$bic$" ]}
+
{[ "type": "textarea", "label": "", "name": "note", "value": "$note$" ]} diff --git a/modules/banche/init.php b/modules/banche/init.php index 4ce12505a..d08beb423 100755 --- a/modules/banche/init.php +++ b/modules/banche/init.php @@ -17,8 +17,12 @@ * along with this program. If not, see . */ +use Modules\Banche\Banca; + include_once __DIR__.'/../../core.php'; if (isset($id_record)) { - $record = $dbo->fetchOne('SELECT * FROM `co_banche` WHERE id='.prepare($id_record)); + $banca = Banca::find($id_record); + + $record = $banca->toArray(); } diff --git a/modules/banche/src/Banca.php b/modules/banche/src/Banca.php new file mode 100644 index 000000000..7b59c3606 --- /dev/null +++ b/modules/banche/src/Banca.php @@ -0,0 +1,61 @@ +. + */ + +namespace Modules\Banche; + +use Common\Model; +use Illuminate\Database\Eloquent\SoftDeletes; +use Modules\Anagrafiche\Anagrafica; + +class Banca extends Model +{ + use SoftDeletes; + + protected $table = 'co_banche'; + + /** + * Crea una nuovo banca. + * + * @param string $nome + * @param string $iban + * @param string $bic + * + * @return self + */ + public static function build(Anagrafica $anagrafica, $nome, $iban, $bic) + { + $model = parent::build(); + + // Informazioni di base + $model->anagrafica()->associate($anagrafica); + $model->nome = $nome; + $model->iban = $iban; + $model->bic = $bic; + + // Salvataggio delle informazioni + $model->save(); + + return $model; + } + + public function anagrafica() + { + return $this->belongsTo(Anagrafica::class, 'id_anagrafica'); + } +} diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 557fe4ee3..0e2eade7f 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -17,10 +17,13 @@ * along with this program. If not, see . */ +use Modules\Anagrafiche\Anagrafica; use Modules\Iva\Aliquota; include_once __DIR__.'/../../core.php'; +$anagrafica_azienda = Anagrafica::find(setting('Azienda predefinita')); + $block_edit = !empty($note_accredito) || $record['stato'] == 'Emessa' || $record['stato'] == 'Pagato' || $record['stato'] == 'Parzialmente pagato'; $rs = $dbo->fetchArray('SELECT co_tipidocumento.descrizione, dir FROM co_tipidocumento INNER JOIN co_documenti ON co_tipidocumento.id=co_documenti.idtipodocumento WHERE co_documenti.id='.prepare($id_record)); @@ -269,7 +272,7 @@ elseif ($record['stato'] == 'Bozza') {
- {[ "type": "select", "label": "", "name": "idbanca", "values": "query=SELECT id, CONCAT (nome, ' - ' , iban) AS descrizione FROM co_banche WHERE deleted_at IS NULL ORDER BY nome ASC", "value": "$idbanca$", "icon-after": "add|||", "extra": " " ]} + {[ "type": "select", "label": "", "name": "idbanca", "ajax-source": "banche", "select-options": $anagrafica_azienda->id]); ?>, "value": "$idbanca$", "icon-after": "add|||", "extra": " " ]}
fetchOne('SELECT id FROM co_pagamenti WHERE id = :id_pagamento', [ - ':id_pagamento' => $anagrafica['idpagamento_'.$conto], + ':id_pagamento' => $anagrafica->{'idpagamento_'.$conto}, ])['id']; - $id_banca = $anagrafica['idbanca_'.$conto]; + $id_banca = $anagrafica->{'idbanca_'.$conto}; // Se la fattura è di vendita e non è stato associato un pagamento predefinito al cliente leggo il pagamento dalle impostazioni if ($direzione == 'entrata' && empty($id_pagamento)) { @@ -641,11 +642,13 @@ class Fattura extends Document $riba = database()->fetchOne('SELECT riba FROM co_pagamenti WHERE id ='.prepare($this->idpagamento)); if ($riba['riba'] == 1) { - $result = database()->fetchOne('SELECT codiceiban, appoggiobancario, bic FROM an_anagrafiche WHERE idanagrafica ='.prepare($this->idanagrafica)); + $id_banca = $this->anagrafica->idbanca_vendite; } else { - $result = database()->fetchOne('SELECT iban AS codiceiban, nome AS appoggiobancario, bic FROM co_banche WHERE id='.prepare($this->idbanca)); + $id_banca = $this->idbanca; } + $result = Banca::find($id_banca); + return $result; } diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index 86de15ae5..115bba7a9 100755 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -1414,14 +1414,14 @@ class FatturaElettronica 'ImportoPagamento' => abs($scadenza['da_pagare']), ]; - if (!empty($banca['appoggiobancario'])) { - $pagamento['IstitutoFinanziario'] = $banca['appoggiobancario']; + if (!empty($banca->nome)) { + $pagamento['IstitutoFinanziario'] = $banca->nome; } - if (!empty($banca['codiceiban'])) { - $pagamento['IBAN'] = clean($banca['codiceiban']); + if (!empty($banca->iban)) { + $pagamento['IBAN'] = clean($banca->iban); } - if (!empty($banca['bic'])) { - $pagamento['BIC'] = $banca['bic']; + if (!empty($banca->bic)) { + $pagamento['BIC'] = $banca->bic; } $result[]['DettaglioPagamento'] = $pagamento; diff --git a/templates/fatture/init.php b/templates/fatture/init.php index ce64b1619..ba71b5885 100755 --- a/templates/fatture/init.php +++ b/templates/fatture/init.php @@ -43,9 +43,9 @@ $record['rivalsainps'] = floatval($record['rivalsainps']); $record['ritenutaacconto'] = floatval($record['ritenutaacconto']); $record['bollo'] = floatval($record['bollo']); -$nome_banca = $banca['appoggiobancario']; -$iban_banca = $banca['codiceiban']; -$bic_banca = $banca['bic']; +$nome_banca = $banca->nome; +$iban_banca = $banca->iban; +$bic_banca = $banca->bic; $module_name = ($record['dir'] == 'entrata') ? 'Fatture di vendita' : 'Fatture di acquisto'; diff --git a/update/2_4_18.sql b/update/2_4_18.sql index 858a30170..8d8ed8dbb 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -88,3 +88,33 @@ UPDATE `zz_views` SET `query` = 'CONCAT(UCASE(LEFT(tipo_movimento, 1)), SUBSTRIN -- Aggiornamento versione API services UPDATE `zz_settings` SET `valore` = 'v3' WHERE `nome` = 'OSMCloud Services API Version'; +-- Aggiornamento del modulo Banche per il supporto completo alle Anagrafiche +ALTER TABLE `co_banche` ADD `id_anagrafica` INT(11) NOT NULL, CHANGE `note` `note` TEXT, CHANGE `filiale` `filiale` varchar(255); +UPDATE `co_banche` SET `id_anagrafica` = (SELECT `valore` FROM `zz_settings` WHERE `nome` = 'Azienda predefinita'); +ALTER TABLE `co_banche` ADD FOREIGN KEY (`id_anagrafica`) REFERENCES `an_anagrafiche`(`idanagrafica`) ON DELETE CASCADE; + +-- Collegamento sulla base dei campi aggiuntivi per le Anagrafiche +UPDATE `co_banche` + INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idbanca_acquisti` = `co_banche`.`id` +SET `co_banche`.`id_anagrafica` = `an_anagrafiche`.`idanagrafica` +WHERE `an_anagrafiche`.`idbanca_acquisti` != 0; +UPDATE `co_banche` + INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idbanca_vendite` = `co_banche`.`id` +SET `co_banche`.`id_anagrafica` = `an_anagrafiche`.`idanagrafica` +WHERE `an_anagrafiche`.`idbanca_vendite` != 0; + +-- Aggiornamento ID relativo sulle Anagrafiche +ALTER TABLE `an_anagrafiche` CHANGE `idbanca_acquisti` `idbanca_acquisti` INT(11), + CHANGE `idbanca_vendite` `idbanca_vendite` INT(11); +UPDATE `an_anagrafiche` SET `idbanca_acquisti` = NULL WHERE `idbanca_vendite` = 0; +UPDATE `an_anagrafiche` SET `idbanca_vendite` = NULL WHERE `idbanca_vendite` = 0; + +INSERT INTO `co_banche` (`id_anagrafica`, `nome`, `iban`, `bic`, `filiale`) SELECT idanagrafica, IF(appoggiobancario != '', appoggiobancario, CONCAT('Banca predefinita di ', ragione_sociale)), codiceiban, bic, filiale FROM an_anagrafiche WHERE codiceiban IS NOT NULL AND codiceiban != ''; + +UPDATE `an_anagrafiche` SET `idbanca_acquisti` = (SELECT `id` FROM `co_banche` WHERE `co_banche`.`id_anagrafica` = `an_anagrafiche`.`idanagrafica` LIMIT 1) WHERE `idbanca_acquisti` IS NULL; +UPDATE `an_anagrafiche` SET `idbanca_vendite` = (SELECT `id` FROM `co_banche` WHERE `co_banche`.`id_anagrafica` = `an_anagrafiche`.`idanagrafica` LIMIT 1) WHERE `idbanca_vendite` IS NULL; + +-- Aggiornamento tabella principale per Banche +UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_banche` INNER JOIN an_anagrafiche ON `an_anagrafiche`.`idanagrafica` = `co_banche`.`id_anagrafica` WHERE 1=1 AND `co_banche`.`deleted_at` IS NULL AND `an_anagrafiche`.`deleted_at` IS NULL HAVING 2=2' WHERE `name` = 'Banche'; +INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, `slow`, `format`, `visible`, `summable`, `default`) VALUES +(NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Banche'), 'Anagrafica', 'an_anagrafiche.ragione_sociale', 0, 1, 0, 0, 1, 0, 1);