Revisione modulo Banche
Revisione del modulo Banche per aggiungere il supporto alle Anagrafiche, in modo da unificare le informazioni relative.
This commit is contained in:
parent
713869aafd
commit
c2f2aa99fa
|
@ -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',
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -378,7 +378,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
|
||||
<div class="tab-content '.(!$is_cliente && !$is_fornitore && !$is_tecnico ? 'hide' : '').'">
|
||||
<div class="tab-pane '.(!$is_cliente && !$is_fornitore ? ' hide' : '').'" id="cliente_fornitore">
|
||||
<div class="row">
|
||||
<!--div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Appoggio bancario').'", "name": "appoggiobancario", "value": "$appoggiobancario$" ]}
|
||||
</div>
|
||||
|
@ -387,6 +387,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
{[ "type": "text", "label": "'.tr('Filiale banca').'", "name": "filiale", "value": "$filiale$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Codice IBAN').'", "name": "codiceiban", "value": "$codiceiban$" ]}
|
||||
|
@ -395,7 +396,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Codice BIC').'", "name": "bic", "value": "$bic$" ]}
|
||||
</div>
|
||||
</div>
|
||||
</div-->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
|
@ -426,7 +427,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "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').'" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -461,7 +462,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
</div>';
|
||||
|
||||
// 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 '
|
||||
<div class="row">
|
||||
|
@ -488,7 +489,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "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.'" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -508,7 +509,7 @@ if ($is_cliente or $is_fornitore or $is_tecnico) {
|
|||
</div>';
|
||||
|
||||
// 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 '
|
||||
<div class="col-md-6">
|
||||
|
|
|
@ -17,59 +17,60 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
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',
|
||||
|
|
|
@ -19,29 +19,38 @@
|
|||
|
||||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
?><form action="" method="post" id="add-form">
|
||||
$id_anagrafica = filter('id_anagrafica');
|
||||
|
||||
echo '
|
||||
<form action="" method="post" id="add-form">
|
||||
<input type="hidden" name="op" value="add">
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": "1" ]}
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "'.tr('Anagrafica').'", "name": "id_anagrafica", "required": "1", "value": "$id_anagrafica$", "ajax-source": "anagrafiche", "value": "'.$id_anagrafica.'", "disabled": "'.intval(!empty($id_anagrafica)).'" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "'.tr('Nome').'", "name": "nome", "required": "1" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{[ "type": "text", "label": "<?php echo tr('IBAN'); ?>", "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$" ]}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
{[ "type": "text", "label": "<?php echo tr('BIC'); ?>", "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$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- PULSANTI -->
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-right">
|
||||
<button type="submit" class="btn btn-primary"><i class="fa fa-plus"></i> <?php echo tr('Aggiungi'); ?></button>
|
||||
<button type="submit" class="btn btn-primary">
|
||||
<i class="fa fa-plus"></i> '.tr('Aggiungi').'
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</form>';
|
||||
|
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
/*
|
||||
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
|
||||
* Copyright (C) DevCode s.n.c.
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
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;
|
||||
}
|
|
@ -20,7 +20,6 @@
|
|||
include_once __DIR__.'/../../core.php';
|
||||
|
||||
?><form action="" method="post" id="edit-form">
|
||||
|
||||
<input type="hidden" name="backto" value="record-edit">
|
||||
<input type="hidden" name="op" value="update">
|
||||
|
||||
|
@ -32,24 +31,35 @@ include_once __DIR__.'/../../core.php';
|
|||
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": "1", "value": "$nome$" ]}
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "<?php echo tr('Anagrafica'); ?>", "name": "id_anagrafica", "required": "1", "value": "$id_anagrafica$", "ajax-source": "anagrafiche", "disabled": 1 ]}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "<?php echo tr('Nome'); ?>", "name": "nome", "required": "1", "value": "$nome$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{[ "type": "text", "label": "<?php echo tr('Filiale'); ?>", "name": "filiale", "value": "$filiale$" ]}
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
|
||||
<div class="col-md-6">
|
||||
{[ "type": "select", "label": "<?php echo tr('Conto predefinito'); ?>", "name": "id_pianodeiconti3", "value": "$id_pianodeiconti3$", "values": "query=SELECT id, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2 = 1" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
{[ "type": "text", "label": "<?php echo tr('IBAN'); ?>", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
{[ "type": "text", "label": "<?php echo tr('BIC'); ?>", "name": "bic", "class": "alphanumeric-mask", "maxlength": 11, "value": "$bic$" ]}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{[ "type": "textarea", "label": "<?php echo tr('Note'); ?>", "name": "note", "value": "$note$" ]}
|
||||
|
|
|
@ -17,8 +17,12 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
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();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
<?php
|
||||
/*
|
||||
* OpenSTAManager: il software gestionale open source per l'assistenza tecnica e la fatturazione
|
||||
* Copyright (C) DevCode s.n.c.
|
||||
*
|
||||
* 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\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');
|
||||
}
|
||||
}
|
|
@ -17,10 +17,13 @@
|
|||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
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') {
|
|||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
{[ "type": "select", "label": "<?php echo tr('Banca'); ?>", "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|<?php echo Modules::get('Banche')['id']; ?>||", "extra": " <?php echo (intval($block_edit)) ? 'disabled' : ''; ?> " ]}
|
||||
{[ "type": "select", "label": "<?php echo tr('Banca'); ?>", "name": "idbanca", "ajax-source": "banche", "select-options": <?php echo json_encode(['id_anagrafica' => $anagrafica_azienda->id]); ?>, "value": "$idbanca$", "icon-after": "add|<?php echo Modules::get('Banche')['id']; ?>||", "extra": " <?php echo (intval($block_edit)) ? 'disabled' : ''; ?> " ]}
|
||||
</div>
|
||||
|
||||
<?php
|
||||
|
|
|
@ -25,6 +25,7 @@ use Common\Components\Description;
|
|||
use Common\Document;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Modules\Anagrafiche\Anagrafica;
|
||||
use Modules\Banche\Banca;
|
||||
use Modules\Fatture\Gestori\Bollo as GestoreBollo;
|
||||
use Modules\Fatture\Gestori\Movimenti as GestoreMovimenti;
|
||||
use Modules\Fatture\Gestori\Scadenze as GestoreScadenze;
|
||||
|
@ -133,9 +134,9 @@ class Fattura extends Document
|
|||
|
||||
// Tipo di pagamento e banca predefinite dall'anagrafica
|
||||
$id_pagamento = $database->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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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';
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue