From 0c2300c3822c933a501b1e80a17021dd484e9c28 Mon Sep 17 00:00:00 2001 From: Beppe Date: Fri, 23 Apr 2021 17:59:27 +0200 Subject: [PATCH 1/8] Note fattura pianificata da impostazioni --- .../pianificazione_fatturazione/crea_fattura.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/plugins/pianificazione_fatturazione/crea_fattura.php b/plugins/pianificazione_fatturazione/crea_fattura.php index 07ad5c0ac..6a83dbe91 100755 --- a/plugins/pianificazione_fatturazione/crea_fattura.php +++ b/plugins/pianificazione_fatturazione/crea_fattura.php @@ -80,11 +80,15 @@ echo ' '; -// Descrizione fattura -$descrizione = tr('Rata _N_ del contratto numero _NUM_', [ - '_N_' => $numero_rata, - '_NUM_' => $contratto->numero, -]); +//gestione replace +$descrizione = get_var("Descrizione fattura pianificata"); +$modules = MODULES::get('Contratti')['id']; +$variables = include Modules::filepath($modules, 'variables.php'); +foreach ($variables as $variable => $value) { + $descrizione = str_replace("{".$variable."}", $value, $descrizione); +} +$descrizione = str_replace("{rata}", $numero_rata, $descrizione); +$descrizione = str_replace("{zona}", $zona, $descrizione); echo '
From 364580bc337d295211de8e04e291b0aa4d776c2a Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 26 Apr 2021 08:45:52 +0200 Subject: [PATCH 2/8] Compilazione IBAN automatica per modulo Banche --- assets/src/js/functions/input.js | 11 ++- modules/banche/actions.php | 39 ++++++++- modules/banche/edit.php | 140 +++++++++++++++++++++++++++++-- modules/banche/src/Banca.php | 12 +++ modules/banche/src/IBAN.php | 2 +- update/2_4_23.php | 7 ++ update/2_4_23.sql | 11 ++- 7 files changed, 213 insertions(+), 9 deletions(-) diff --git a/assets/src/js/functions/input.js b/assets/src/js/functions/input.js index e54444529..a45a555f4 100644 --- a/assets/src/js/functions/input.js +++ b/assets/src/js/functions/input.js @@ -136,7 +136,7 @@ Input.prototype.getElement = function () { /** * Gestisce l'abilitazione e la disibilitazione dell'input sulla base del valore indicato. * - * @param {bool} value + * @param {boolean} value * @returns {Input} */ Input.prototype.setDisabled = function (value) { @@ -215,6 +215,15 @@ Input.prototype.enable = function () { return this; } +/** + * Controlla se l'input è disabilitato. + * + * @returns {boolean} + */ +Input.prototype.isDisabled = function () { + return this.element.hasClass("disabled") +} + /** * Restituisce un oggetto cotentente le caratteristiche dell'input. * diff --git a/modules/banche/actions.php b/modules/banche/actions.php index c3f3ffd54..5774fbbaa 100755 --- a/modules/banche/actions.php +++ b/modules/banche/actions.php @@ -18,7 +18,9 @@ */ use Modules\Anagrafiche\Anagrafica; +use Modules\Anagrafiche\Nazione; use Modules\Banche\Banca; +use Modules\Banche\IBAN; include_once __DIR__.'/../../core.php'; @@ -52,7 +54,6 @@ switch (filter('op')) { $banca->nome = post('nome'); $banca->iban = post('iban'); - $banca->bic = post('bic'); $banca->note = post('note'); $banca->id_pianodeiconti3 = post('id_pianodeiconti3'); @@ -75,5 +76,41 @@ switch (filter('op')) { '_TYPE_' => 'Banca', ])); + break; + + case 'compose': + $nazione = Nazione::find(filter('id_nazione')); + + $iban = IBAN::generate([ + 'nation' => $nazione->iso2, + 'bank_code' => filter('bank_code'), + 'branch_code' => filter('branch_code'), + 'account_number' => filter('account_number'), + 'check_digits' => filter('check_digits'), + 'national_check_digits' => filter('national_check_digits'), + ]); + + echo json_encode([ + 'iban' => $iban->getIban(), + ]); + + break; + + case 'decompose': + $iban = new IBAN(filter('iban')); + $nazione = Nazione::where('iso2', '=', $iban->getNation())->first(); + + echo json_encode([ + 'id_nazione' => [ + 'id' => $nazione->id, + 'text' => $nazione->nome, + ], + 'bank_code' => $iban->getBankCode(), + 'branch_code' => $iban->getBranchCode(), + 'account_number' => $iban->getAccountNumber(), + 'check_digits' => $iban->getCheckDigits(), + 'national_check_digits' => $iban->getNationalCheckDigits(), + ]); + break; } diff --git a/modules/banche/edit.php b/modules/banche/edit.php index 930d59230..b1c98befd 100644 --- a/modules/banche/edit.php +++ b/modules/banche/edit.php @@ -58,11 +58,9 @@ include_once __DIR__.'/../../core.php';
{[ "type": "text", "label": "", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]}
+
-
- {[ "type": "text", "label": "", "name": "bic", "required": "1", "class": "alphanumeric-mask", "maxlength": 11, "value": "$bic$" ]} -
- +
{[ "type": "text", "label": "", "name": "creditor_id", "class": "alphanumeric-mask", "value": "$creditor_id$", "help": "" ]}
@@ -79,9 +77,45 @@ include_once __DIR__.'/../../core.php';
- + +
+
+

+
+ +
+
+
+ {[ "type": "select", "label": "", "name": "id_nazione", "value": "$id_nazione$", "ajax-source": "nazioni" ]} +
+ +
+ {[ "type": "text", "label": "", "name": "branch_code", "class": "alphanumeric-mask", "value": "$branch_code$" ]} +
+ +
+ {[ "type": "text", "label": "", "name": "bank_code", "class": "alphanumeric-mask", "value": "$bank_code$" ]} +
+
+ +
+
+ {[ "type": "text", "label": "", "name": "account_number", "class": "alphanumeric-mask", "value": "$account_number$"]} +
+ +
+ {[ "type": "text", "label": "", "name": "check_digits", "class": "alphanumeric-mask", "value": "$check_digits$" ]} +
+ +
+ {[ "type": "text", "label": "", "name": "national_check_digits", "class": "alphanumeric-mask", "value": "$national_check_digits$" ]} +
+
+
+
+ fetchNum('SELECT idanagrafica FROM an_anagrafiche WHERE idbanca_vendite='.prepare($id_record).' @@ -101,3 +135,99 @@ if (!empty($numero_documenti)) { + + diff --git a/modules/banche/src/Banca.php b/modules/banche/src/Banca.php index c57816402..4fefc238e 100644 --- a/modules/banche/src/Banca.php +++ b/modules/banche/src/Banca.php @@ -23,6 +23,7 @@ use Common\SimpleModelTrait; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; use Modules\Anagrafiche\Anagrafica; +use Modules\Anagrafiche\Nazione; class Banca extends Model { @@ -65,6 +66,17 @@ class Banca extends Model { $this->fixPredefined(); + // Camponenti IBAN + $iban = new IBAN($this->iban); + $nazione = Nazione::where('iso2', '=', $iban->getNation())->first(); + $this->id_nazione = $nazione->id; + $this->iban = $iban->getIban(); + $this->bank_code = $iban->getBankCode(); + $this->branch_code = $iban->getBranchCode(); + $this->account_number = $iban->getAccountNumber(); + $this->check_digits = $iban->getCheckDigits(); + $this->national_check_digits = $iban->getNationalCheckDigits(); + return parent::save($options); } diff --git a/modules/banche/src/IBAN.php b/modules/banche/src/IBAN.php index 9035c8fd4..2017b2d16 100644 --- a/modules/banche/src/IBAN.php +++ b/modules/banche/src/IBAN.php @@ -6,7 +6,7 @@ use UnexpectedValueException; /** * Format: - * b = National bank code (Codice ABI) + * b = National bank code (Codice ABI e BIC) * s = Bank/branch code (sort code, or CAB – Codice d'Avviamento Bancario) * c = Account number * d = Account type diff --git a/update/2_4_23.php b/update/2_4_23.php index cbafec978..c9cb14f57 100644 --- a/update/2_4_23.php +++ b/update/2_4_23.php @@ -1,5 +1,6 @@ registra(); } + +// Completamento automatico informazioni IBAN per banche +$banche = Banca::all(); +foreach ($banche as $banca) { + $banca->save(); +} diff --git a/update/2_4_23.sql b/update/2_4_23.sql index 0dba8ebd7..9754deb54 100644 --- a/update/2_4_23.sql +++ b/update/2_4_23.sql @@ -167,4 +167,13 @@ ALTER TABLE `co_pagamenti` DROP `riba`; INSERT INTO `zz_group_module` (`idgruppo`, `idmodule`, `name`, `clause`, `position`, `enabled`, `default`) VALUES(4, 31, 'Mostra i contratti ai clienti coivolti', 'co_contratti.idanagrafica=|id_anagrafica|', 'WHR', 1, 1); -- Fix widget crediti clienti -UPDATE `zz_widgets` SET `query` = 'SELECT \n CONCAT_WS(\' \', REPLACE(REPLACE(REPLACE(FORMAT((\n SELECT SUM(da_pagare-pagato)), 2), \',\', \'#\'), \'.\', \',\'),\'#\', \'.\'), \'€\') AS dato FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir=\'entrata\' AND co_documenti.idstatodocumento!=1 |segment| AND 1=1' WHERE `zz_widgets`.`name` = 'Crediti da clienti'; \ No newline at end of file +UPDATE `zz_widgets` SET `query` = 'SELECT \n CONCAT_WS(\' \', REPLACE(REPLACE(REPLACE(FORMAT((\n SELECT SUM(da_pagare-pagato)), 2), \',\', \'#\'), \'.\', \',\'),\'#\', \'.\'), \'€\') AS dato FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir=\'entrata\' AND co_documenti.idstatodocumento!=1 |segment| AND 1=1' WHERE `zz_widgets`.`name` = 'Crediti da clienti'; + +-- Aggiunti campi per componenti IBAN +ALTER TABLE `co_banche` CHANGE `bic` `branch_code` VARCHAR(20) NULL, + ADD `bank_code` VARCHAR(20) NULL, + ADD `account_number` VARCHAR(20) NULL, + ADD `check_digits` VARCHAR(20) NULL, + ADD `national_check_digits` VARCHAR(20) NULL, + ADD `id_nazione` INT(11) NULL, + ADD FOREIGN KEY (`id_nazione`) REFERENCES `an_nazioni`(`id`); From 5ad314bd439577528f36279b91cc3eb4eccf3faf Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 26 Apr 2021 09:16:16 +0200 Subject: [PATCH 3/8] Correzioni minori per Banche e stile del codice --- modules/banche/actions.php | 2 +- modules/banche/add.php | 7 +-- modules/banche/edit.php | 6 ++- modules/banche/src/Banca.php | 4 +- modules/emails/buttons.php | 3 +- modules/fatture/edit.php | 2 +- modules/fatture/src/Fattura.php | 1 - modules/interventi/bulk.php | 3 +- .../pianificazione_fatturazione/actions.php | 2 +- .../crea_fattura.php | 8 ++-- src/HTMLBuilder/Handler/DefaultHandler.php | 2 +- templates/anagrafiche/body.php | 48 +++++++++---------- templates/anagrafiche/init.php | 2 +- templates/azienda/body.php | 6 +-- templates/azienda/init.php | 2 +- 15 files changed, 43 insertions(+), 55 deletions(-) diff --git a/modules/banche/actions.php b/modules/banche/actions.php index 5774fbbaa..8173cec8e 100755 --- a/modules/banche/actions.php +++ b/modules/banche/actions.php @@ -33,7 +33,7 @@ switch (filter('op')) { $iban = filter('iban'); $bic = filter('bic'); - $banca = Banca::build($anagrafica, $nome, $iban, $bic); + $banca = Banca::build($anagrafica, $nome, $iban); $id_record = $banca->id; if (isAjaxRequest()) { diff --git a/modules/banche/add.php b/modules/banche/add.php index 48167d343..c602ed0a2 100755 --- a/modules/banche/add.php +++ b/modules/banche/add.php @@ -21,8 +21,6 @@ include_once __DIR__.'/../../core.php'; $id_anagrafica = filter('id_anagrafica'); -$help_codice_bic = tr('Il codice BIC (o SWIFT) è composto da 8 a 11 caratteri (lettere e numeri) ed è suddiviso in:').'

'; - echo '
@@ -39,12 +37,9 @@ echo '
-
+
{[ "type": "text", "label": "'.tr('IBAN').'", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]}
-
- {[ "type": "text", "label": "'.tr('BIC').'", "name": "bic", "required": "1", "class": "alphanumeric-mask", "minlength": 8, "maxlength": 11, "value": "$bic$", "help": "'.$help_codice_bic.'" ]} -
diff --git a/modules/banche/edit.php b/modules/banche/edit.php index b1c98befd..ed5e55be1 100644 --- a/modules/banche/edit.php +++ b/modules/banche/edit.php @@ -19,6 +19,8 @@ include_once __DIR__.'/../../core.php'; +$help_codice_bic = tr('Il codice BIC (o SWIFT) è composto da 8 a 11 caratteri (lettere e numeri) ed è suddiviso in:').'

  • '.tr('AAAA - codice bancario').'
  • '.tr('BB - codice ISO della nazione').'
  • '.tr('CC - codice città presso la quale è ubicata la banca').'
  • '.tr('DD - codice della filiale (opzionale)').'
'; + ?> @@ -92,7 +94,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "text", "label": "", "name": "branch_code", "class": "alphanumeric-mask", "value": "$branch_code$" ]} + {[ "type": "text", "label": "", "name": "branch_code", "class": "alphanumeric-mask", "value": "$branch_code$", "help": "" ]}
@@ -110,7 +112,7 @@ include_once __DIR__.'/../../core.php';
- {[ "type": "text", "label": "", "name": "national_check_digits", "class": "alphanumeric-mask", "value": "$national_check_digits$" ]} + {[ "type": "text", "label": "", "name": "national_check_digits", "class": "alphanumeric-mask", "value": "$national_check_digits$" ]}
diff --git a/modules/banche/src/Banca.php b/modules/banche/src/Banca.php index 4fefc238e..566c41fd0 100644 --- a/modules/banche/src/Banca.php +++ b/modules/banche/src/Banca.php @@ -37,11 +37,10 @@ class Banca extends Model * * @param string $nome * @param string $iban - * @param string $bic * * @return self */ - public static function build(Anagrafica $anagrafica, $nome, $iban, $bic) + public static function build(Anagrafica $anagrafica, $nome, $iban) { $model = new static(); @@ -49,7 +48,6 @@ class Banca extends Model $model->anagrafica()->associate($anagrafica); $model->nome = $nome; $model->iban = $iban; - $model->bic = $bic; // Salvataggio delle informazioni $model->save(); diff --git a/modules/emails/buttons.php b/modules/emails/buttons.php index 578483a8b..e8acb1891 100644 --- a/modules/emails/buttons.php +++ b/modules/emails/buttons.php @@ -19,7 +19,7 @@ include_once __DIR__.'/../../core.php'; -echo' +echo ' '; // Duplica template @@ -28,4 +28,3 @@ echo '
'; - diff --git a/modules/fatture/edit.php b/modules/fatture/edit.php index 13b474e9d..91993e5a0 100755 --- a/modules/fatture/edit.php +++ b/modules/fatture/edit.php @@ -327,7 +327,7 @@ elseif ($record['stato'] == 'Bozza') { '; } - echo (empty($scadenza->da_pagare) ? '' : '').moneyFormat($scadenza->da_pagare); + echo(empty($scadenza->da_pagare) ? '' : '').moneyFormat($scadenza->da_pagare); if ($pagamento_iniziato) { echo ' diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php index 38773c688..36dc3c42a 100755 --- a/modules/fatture/src/Fattura.php +++ b/modules/fatture/src/Fattura.php @@ -551,7 +551,6 @@ class Fattura extends Document $this->attributes['iva_rivalsainps'] = $this->iva_rivalsa_inps; $this->attributes['rivalsainps'] = $this->rivalsa_inps; $this->attributes['ritenutaacconto'] = $this->ritenuta_acconto; - // Generazione numero fattura se non presente (Bozza -> Emessa) if ((($stato_precedente->descrizione == 'Bozza' && $this->stato['descrizione'] == 'Emessa') or (!$is_fiscale)) && empty($this->numero_esterno)) { diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php index cbedc9173..137784d65 100755 --- a/modules/interventi/bulk.php +++ b/modules/interventi/bulk.php @@ -236,7 +236,7 @@ switch (post('op')) { } catch (InvalidArgumentException $e) { } } - + flash()->info(tr('Interventi eliminati!')); break; } @@ -247,7 +247,6 @@ if (App::debug()) { ]; } - $operations['export-bulk'] = [ 'text' => ' '.tr('Esporta stampe'), 'data' => [ diff --git a/plugins/pianificazione_fatturazione/actions.php b/plugins/pianificazione_fatturazione/actions.php index a7d3efde3..46ba6d83f 100755 --- a/plugins/pianificazione_fatturazione/actions.php +++ b/plugins/pianificazione_fatturazione/actions.php @@ -165,7 +165,7 @@ switch ($operazione) { // Creazione fattura if (empty($id_documento)) { $fattura = Fattura::build($contratto->anagrafica, $tipo, $data, $id_segment); - }else{ + } else { $fattura = Fattura::find($id_documento); } $fattura->note = post('note'); diff --git a/plugins/pianificazione_fatturazione/crea_fattura.php b/plugins/pianificazione_fatturazione/crea_fattura.php index 6a83dbe91..3e3a9974f 100755 --- a/plugins/pianificazione_fatturazione/crea_fattura.php +++ b/plugins/pianificazione_fatturazione/crea_fattura.php @@ -81,14 +81,14 @@ echo ' '; //gestione replace -$descrizione = get_var("Descrizione fattura pianificata"); +$descrizione = get_var('Descrizione fattura pianificata'); $modules = MODULES::get('Contratti')['id']; $variables = include Modules::filepath($modules, 'variables.php'); foreach ($variables as $variable => $value) { - $descrizione = str_replace("{".$variable."}", $value, $descrizione); + $descrizione = str_replace('{'.$variable.'}', $value, $descrizione); } -$descrizione = str_replace("{rata}", $numero_rata, $descrizione); -$descrizione = str_replace("{zona}", $zona, $descrizione); +$descrizione = str_replace('{rata}', $numero_rata, $descrizione); +$descrizione = str_replace('{zona}', $zona, $descrizione); echo '
diff --git a/src/HTMLBuilder/Handler/DefaultHandler.php b/src/HTMLBuilder/Handler/DefaultHandler.php index 1fcadf65f..df45321d5 100755 --- a/src/HTMLBuilder/Handler/DefaultHandler.php +++ b/src/HTMLBuilder/Handler/DefaultHandler.php @@ -72,7 +72,7 @@ class DefaultHandler implements HandlerInterface { // Generazione del codice HTML return ' - '; + '; } /** diff --git a/templates/anagrafiche/body.php b/templates/anagrafiche/body.php index 763e57067..4ce1241ac 100755 --- a/templates/anagrafiche/body.php +++ b/templates/anagrafiche/body.php @@ -18,7 +18,6 @@ */ use Modules\Interventi\Intervento; -use Carbon\Carbon; include_once __DIR__.'/../../core.php'; @@ -59,21 +58,20 @@ echo ' '; - /* Sedi */ -$sedi = $dbo->fetchArray("SELECT * FROM an_sedi WHERE idanagrafica=".prepare($anagrafica->idanagrafica)); -if( !empty($sedi) ){ +$sedi = $dbo->fetchArray('SELECT * FROM an_sedi WHERE idanagrafica='.prepare($anagrafica->idanagrafica)); +if (!empty($sedi)) { echo ' '; - for($i=0; count($sedi)>$i; $i++){ - echo ' + for ($i = 0; count($sedi) > $i; ++$i) { + echo ' @@ -90,11 +88,11 @@ if( !empty($sedi) ){ '; - if( !empty($sedi[$i+1]) ){ - echo ' + if (!empty($sedi[$i + 1])) { + echo ' '; - } } + } echo '
'.tr('Sedi', [], ['upper' => true]).'
'.tr('Nome sede').': '.$sedi[$i]['nomesede'].'
'.tr('cellulare').': '.$sedi[$i]['cellulare'].'
'; @@ -104,17 +102,17 @@ if( !empty($sedi) ){ Impianti */ -$impianti = $dbo->fetchArray("SELECT * FROM my_impianti WHERE idanagrafica=".prepare($anagrafica->idanagrafica)); +$impianti = $dbo->fetchArray('SELECT * FROM my_impianti WHERE idanagrafica='.prepare($anagrafica->idanagrafica)); -if( !empty($impianti) ){ +if (!empty($impianti)) { echo ' '; - for($i=0; count($impianti)>$i; $i++){ - echo ' + for ($i = 0; count($impianti) > $i; ++$i) { + echo ' @@ -126,11 +124,11 @@ if( !empty($impianti) ){ '; - if( !empty($impianti[$i+1]) ){ - echo ' + if (!empty($impianti[$i + 1])) { + echo ' '; - } } + } echo '
'.tr('Impianti', [], ['upper' => true]).'
'.tr('Matricola').': '.$impianti[$i]['matricola'].' '.tr('Data').': '.Translator::dataToLocale($impianti[$i]['data']).''.tr('descrizione').': '.$impianti[$i]['descrizione'].'
'; @@ -140,18 +138,18 @@ if( !empty($impianti) ){ Attività */ -$interventi = $dbo->fetchArray("SELECT id, sessione.inizio FROM in_interventi LEFT JOIN (SELECT MIN(orario_inizio) AS inizio, in_interventi_tecnici.idintervento FROM in_interventi_tecnici GROUP BY in_interventi_tecnici.idintervento) AS sessione ON sessione.idintervento=in_interventi.id WHERE idanagrafica=".prepare($anagrafica->idanagrafica)); +$interventi = $dbo->fetchArray('SELECT id, sessione.inizio FROM in_interventi LEFT JOIN (SELECT MIN(orario_inizio) AS inizio, in_interventi_tecnici.idintervento FROM in_interventi_tecnici GROUP BY in_interventi_tecnici.idintervento) AS sessione ON sessione.idintervento=in_interventi.id WHERE idanagrafica='.prepare($anagrafica->idanagrafica)); -if( !empty($interventi) ){ +if (!empty($interventi)) { echo ' '; - for($i=0; count($interventi)>$i; $i++){ - $intervento = Intervento::find($interventi[$i]['id']); - echo ' + for ($i = 0; count($interventi) > $i; ++$i) { + $intervento = Intervento::find($interventi[$i]['id']); + echo ' @@ -165,12 +163,12 @@ if( !empty($interventi) ){ '; - if( !empty($interventi[$i+1]) ){ - echo ' + if (!empty($interventi[$i + 1])) { + echo ' '; - } } + } echo '
'.tr('Attività', [], ['upper' => true]).'
'.tr('Data richiesta').': '.Translator::dateToLocale($intervento->data_richiesta).' '.tr('Data scadenza').': '.Translator::dateToLocale($intervento->data_scadenza).''.tr('richiesta').': '.$intervento->richiesta.'
'; -} \ No newline at end of file +} diff --git a/templates/anagrafiche/init.php b/templates/anagrafiche/init.php index cc0cf9e41..8c3a3b06a 100755 --- a/templates/anagrafiche/init.php +++ b/templates/anagrafiche/init.php @@ -22,4 +22,4 @@ include_once __DIR__.'/../../core.php'; use Modules\Anagrafiche\Anagrafica; $anagrafica = Anagrafica::find($id_record); -$agente = Anagrafica::find($anagrafica->idagente); \ No newline at end of file +$agente = Anagrafica::find($anagrafica->idagente); diff --git a/templates/azienda/body.php b/templates/azienda/body.php index d2c520c12..051093c58 100755 --- a/templates/azienda/body.php +++ b/templates/azienda/body.php @@ -17,13 +17,11 @@ * along with this program. If not, see . */ -use Modules\Interventi\Intervento; use Modules\Banche\Banca; -use Carbon\Carbon; include_once __DIR__.'/../../core.php'; -$banca = Banca::where('id_anagrafica',$anagrafica->idanagrafica) +$banca = Banca::where('id_anagrafica', $anagrafica->idanagrafica) ->where('predefined', 1) ->first(); @@ -64,4 +62,4 @@ echo ' '.tr('cellulare').': '.$anagrafica['cellulare'].' '.tr('fax').': '.$anagrafica['fax'].' -'; \ No newline at end of file +'; diff --git a/templates/azienda/init.php b/templates/azienda/init.php index a660bf551..aa1d65294 100755 --- a/templates/azienda/init.php +++ b/templates/azienda/init.php @@ -21,4 +21,4 @@ include_once __DIR__.'/../../core.php'; use Modules\Anagrafiche\Anagrafica; -$anagrafica = Anagrafica::find(setting('Azienda predefinita')); \ No newline at end of file +$anagrafica = Anagrafica::find(setting('Azienda predefinita')); From bfe1d29cc9f474299d46d8519955e5036561e179 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 26 Apr 2021 09:27:05 +0200 Subject: [PATCH 4/8] Fix componenti IBAN --- modules/banche/actions.php | 5 ++--- modules/banche/add.php | 6 +++++- modules/banche/edit.php | 12 +++++++----- modules/banche/init.php | 2 ++ modules/banche/src/Banca.php | 4 +++- modules/banche/src/IBAN.php | 6 +++--- update/2_4_23.sql | 2 +- 7 files changed, 23 insertions(+), 14 deletions(-) diff --git a/modules/banche/actions.php b/modules/banche/actions.php index 8173cec8e..4fb8fcfa2 100755 --- a/modules/banche/actions.php +++ b/modules/banche/actions.php @@ -30,10 +30,8 @@ switch (filter('op')) { $anagrafica = Anagrafica::find($id_anagrafica); $nome = filter('nome'); - $iban = filter('iban'); - $bic = filter('bic'); - $banca = Banca::build($anagrafica, $nome, $iban); + $banca = Banca::build($anagrafica, $nome, filter('iban'), filter('bic')); $id_record = $banca->id; if (isAjaxRequest()) { @@ -54,6 +52,7 @@ switch (filter('op')) { $banca->nome = post('nome'); $banca->iban = post('iban'); + $banca->bic = post('bic'); $banca->note = post('note'); $banca->id_pianodeiconti3 = post('id_pianodeiconti3'); diff --git a/modules/banche/add.php b/modules/banche/add.php index c602ed0a2..a589e6311 100755 --- a/modules/banche/add.php +++ b/modules/banche/add.php @@ -37,9 +37,13 @@ echo '
-
+
{[ "type": "text", "label": "'.tr('IBAN').'", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]}
+ +
+ {[ "type": "text", "label": "'.tr('BIC').'", "name": "bic", "required": "1", "class": "alphanumeric-mask", "minlength": 8, "maxlength": 11, "value": "$bic$", "help": "'.$help_codice_bic.'" ]} +
diff --git a/modules/banche/edit.php b/modules/banche/edit.php index ed5e55be1..da2cd1c8a 100644 --- a/modules/banche/edit.php +++ b/modules/banche/edit.php @@ -19,8 +19,6 @@ include_once __DIR__.'/../../core.php'; -$help_codice_bic = tr('Il codice BIC (o SWIFT) è composto da 8 a 11 caratteri (lettere e numeri) ed è suddiviso in:').'

  • '.tr('AAAA - codice bancario').'
  • '.tr('BB - codice ISO della nazione').'
  • '.tr('CC - codice città presso la quale è ubicata la banca').'
  • '.tr('DD - codice della filiale (opzionale)').'
'; - ?>
@@ -60,6 +58,10 @@ $help_codice_bic = tr('Il codice BIC (o SWIFT) è composto da 8 a 11 caratteri (
{[ "type": "text", "label": "", "name": "iban", "required": "1", "class": "alphanumeric-mask", "maxlength": 32, "value": "$iban$" ]}
+ +
+ {[ "type": "text", "label": "", "name": "bic", "required": "1", "class": "alphanumeric-mask", "minlength": 8, "maxlength": 11, "value": "$bic$", "help": "" ]} +
@@ -94,7 +96,7 @@ $help_codice_bic = tr('Il codice BIC (o SWIFT) è composto da 8 a 11 caratteri (
- {[ "type": "text", "label": "", "name": "branch_code", "class": "alphanumeric-mask", "value": "$branch_code$", "help": "" ]} + {[ "type": "text", "label": "", "name": "branch_code", "class": "alphanumeric-mask", "value": "$branch_code$" ]}
@@ -108,11 +110,11 @@ $help_codice_bic = tr('Il codice BIC (o SWIFT) è composto da 8 a 11 caratteri (
- {[ "type": "text", "label": "", "name": "check_digits", "class": "alphanumeric-mask", "value": "$check_digits$" ]} + {[ "type": "text", "label": "", "name": "check_digits", "class": "alphanumeric-mask", "value": "$check_digits$" ]}
- {[ "type": "text", "label": "", "name": "national_check_digits", "class": "alphanumeric-mask", "value": "$national_check_digits$" ]} + {[ "type": "text", "label": "", "name": "national_check_digits", "class": "alphanumeric-mask", "value": "$national_check_digits$" ]}
diff --git a/modules/banche/init.php b/modules/banche/init.php index 24ca85a98..01cc200ab 100755 --- a/modules/banche/init.php +++ b/modules/banche/init.php @@ -28,3 +28,5 @@ if (isset($id_record)) { $record = $banca->toArray(); } } + +$help_codice_bic = tr('Il codice BIC (o SWIFT) è composto da 8 a 11 caratteri (lettere e numeri) ed è suddiviso in:').'

  • '.tr('AAAA - codice bancario').'
  • '.tr('BB - codice ISO della nazione').'
  • '.tr('CC - codice città presso la quale è ubicata la banca').'
  • '.tr('DD - codice della filiale (opzionale)').'
'; diff --git a/modules/banche/src/Banca.php b/modules/banche/src/Banca.php index 566c41fd0..4fefc238e 100644 --- a/modules/banche/src/Banca.php +++ b/modules/banche/src/Banca.php @@ -37,10 +37,11 @@ class Banca extends Model * * @param string $nome * @param string $iban + * @param string $bic * * @return self */ - public static function build(Anagrafica $anagrafica, $nome, $iban) + public static function build(Anagrafica $anagrafica, $nome, $iban, $bic) { $model = new static(); @@ -48,6 +49,7 @@ class Banca extends Model $model->anagrafica()->associate($anagrafica); $model->nome = $nome; $model->iban = $iban; + $model->bic = $bic; // Salvataggio delle informazioni $model->save(); diff --git a/modules/banche/src/IBAN.php b/modules/banche/src/IBAN.php index 2017b2d16..4b8f3618d 100644 --- a/modules/banche/src/IBAN.php +++ b/modules/banche/src/IBAN.php @@ -6,13 +6,13 @@ use UnexpectedValueException; /** * Format: - * b = National bank code (Codice ABI e BIC) + * b = National bank code (Codice ABI) * s = Bank/branch code (sort code, or CAB – Codice d'Avviamento Bancario) * c = Account number * d = Account type * i = National identification number - * k = IBAN check digits - * x = National check digits (CIN). + * k = IBAN check digits (CIN europeo) + * x = National check digits (CIN nazionale). */ class IBAN { diff --git a/update/2_4_23.sql b/update/2_4_23.sql index 9754deb54..e561cf415 100644 --- a/update/2_4_23.sql +++ b/update/2_4_23.sql @@ -170,7 +170,7 @@ INSERT INTO `zz_group_module` (`idgruppo`, `idmodule`, `name`, `clause`, `positi UPDATE `zz_widgets` SET `query` = 'SELECT \n CONCAT_WS(\' \', REPLACE(REPLACE(REPLACE(FORMAT((\n SELECT SUM(da_pagare-pagato)), 2), \',\', \'#\'), \'.\', \',\'),\'#\', \'.\'), \'€\') AS dato FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir=\'entrata\' AND co_documenti.idstatodocumento!=1 |segment| AND 1=1' WHERE `zz_widgets`.`name` = 'Crediti da clienti'; -- Aggiunti campi per componenti IBAN -ALTER TABLE `co_banche` CHANGE `bic` `branch_code` VARCHAR(20) NULL, +ALTER TABLE `co_banche` ADD `branch_code` VARCHAR(20) NULL, ADD `bank_code` VARCHAR(20) NULL, ADD `account_number` VARCHAR(20) NULL, ADD `check_digits` VARCHAR(20) NULL, From 83e9685459f3faef610357d491615d9308b6fc45 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 26 Apr 2021 09:35:01 +0200 Subject: [PATCH 5/8] Fix importazione Articoli con sottocategoria --- modules/articoli/src/Import/CSV.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modules/articoli/src/Import/CSV.php b/modules/articoli/src/Import/CSV.php index a07591193..333408b7a 100644 --- a/modules/articoli/src/Import/CSV.php +++ b/modules/articoli/src/Import/CSV.php @@ -218,7 +218,7 @@ class CSV extends CSVImporter // Gestione categoria e sottocategoria $categoria = null; - $sotto_categoria = null; + $sottocategoria = null; if (!empty($record['id_categoria'])) { // Categoria $categoria = Categoria::where('nome', strtolower($record['id_categoria']))->first(); @@ -229,14 +229,14 @@ class CSV extends CSVImporter // Sotto-categoria if (!empty($record['id_sottocategoria'])) { - $sotto_categoria = Categoria::where('nome', $record['id_sottocategoria']) + $sottocategoria = Categoria::where('nome', $record['id_sottocategoria']) ->where('parent', $categoria->id) ->first(); if (empty($sottocategoria)) { - $sotto_categoria = Categoria::build($record['id_categoria']); - $sotto_categoria->parent()->associate($categoria); - $sotto_categoria->save(); + $sottocategoria = Categoria::build($record['id_sottocategoria']); + $sottocategoria->parent()->associate($categoria); + $sottocategoria->save(); } } } @@ -254,7 +254,7 @@ class CSV extends CSVImporter $articolo = Articolo::where($primary_key, $record[$primary_key])->first(); } if (empty($articolo)) { - $articolo = Articolo::build($record['codice'], $record['descrizione'], $categoria, $sotto_categoria); + $articolo = Articolo::build($record['codice'], $record['descrizione'], $categoria, $sottocategoria); } $articolo->idiva_vendita = $aliquota->id; From c62ae3ac9562532e9c86ea9b91602551e91786d5 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 26 Apr 2021 09:53:41 +0200 Subject: [PATCH 6/8] Fix auto-completamento indirizzi email --- actions.php | 5 ++++- editor.php | 5 ++++- include/manager.php | 10 ++++++++-- mail.php | 36 ++++++++++++++++++++---------------- 4 files changed, 36 insertions(+), 20 deletions(-) diff --git a/actions.php b/actions.php index fff1d8993..cca727e2a 100755 --- a/actions.php +++ b/actions.php @@ -318,7 +318,10 @@ elseif (post('op') == 'send-email') { // Inclusione di eventuale plugin personalizzato if (!empty($structure['script'])) { - include $structure->getEditFile(); + $path = $structure->getEditFile(); + if (!empty($path)) { + include $path; + } $database->commitTransaction(); diff --git a/editor.php b/editor.php index c6808bbc8..bb2708334 100755 --- a/editor.php +++ b/editor.php @@ -273,7 +273,10 @@ if (empty($record) || !$has_access) {
'; - include $structure->getEditFile(); + $path = $structure->getEditFile(); + if (!empty($path)) { + include $path; + } echo '
diff --git a/include/manager.php b/include/manager.php index b44fd87eb..39f49d551 100755 --- a/include/manager.php +++ b/include/manager.php @@ -31,7 +31,10 @@ if (!empty($id_plugin)) { if (!empty($id_plugin)) { // Inclusione di eventuale plugin personalizzato if (!empty($structure['script'])) { - include $structure->getEditFile(); + $path = $structure->getEditFile(); + if (!empty($path)) { + include $path; + } return; } @@ -234,7 +237,10 @@ if (!empty($type) && $type != 'menu' && $type != 'custom') { * Inclusione modulo personalizzato */ elseif ($type == 'custom') { - include $structure->getEditFile(); + $path = $structure->getEditFile(); + if (!empty($path)) { + include $path; + } } // Caricamento file aggiuntivo su elenco record diff --git a/mail.php b/mail.php index 1864d94cb..3e6d3fe54 100755 --- a/mail.php +++ b/mail.php @@ -82,7 +82,7 @@ echo ' '.tr('Destinatari').'
- {[ "type": "email", "name": "destinatari[0]", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungi_destinatario();\'", "class": "destinatari", "required": 1 ]} + {[ "type": "email", "name": "destinatari[0]", "value": "'.$email.'", "icon-before": "choice|email", "extra": "onkeyup=\'aggiungiDestinatario();\'", "class": "destinatari", "required": 1 ]}
@@ -136,7 +136,7 @@ echo '
- +
'; @@ -144,7 +144,7 @@ echo ' echo ' '; @@ -161,18 +161,10 @@ echo ' emails = JSON.parse(response); $(".destinatari").each(function(){ - $(this).autocomplete({ - source: emails, - minLength: 0, - close: function(){ - aggiungi_destinatario(); - } - }).focus(function() { - $(this).autocomplete("search", $(this).val()); - }); + addAutoComplete(this); }); - aggiungi_destinatario(); + aggiungiDestinatario(); });'; } @@ -180,13 +172,25 @@ echo ' }); - function send() { + function inviaEmail() { if($("#email-form").parsley().validate() && confirm("Inviare e-mail?")) { $("#email-form").submit(); } } - function aggiungi_destinatario() { + function addAutoComplete(input){ + $(input).autocomplete({ + source: emails, + minLength: 0, + close: function() { + aggiungiDestinatario(); + }, + }).focus(function() { + $(this).autocomplete("search", $(this).val()); + }); + } + + function aggiungiDestinatario() { var last = $("#lista-destinatari input").last(); if (last.val()) { @@ -195,7 +199,7 @@ echo ' aggiungiContenuto("#lista-destinatari", "#template-destinatario", {"-id-": $("#lista-destinatari > div").length}); $(".destinatari").each(function(){ - $(this).autocomplete({source: emails}); + addAutoComplete(this); }); restart_inputs(); From 5ff00548fa9e8e0b4c41f3a4a07de369fa97f86d Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 26 Apr 2021 10:16:42 +0200 Subject: [PATCH 7/8] Fix composizione IBAN --- modules/banche/edit.php | 6 ++++++ modules/banche/src/IBAN.php | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/modules/banche/edit.php b/modules/banche/edit.php index da2cd1c8a..751bbbbe6 100644 --- a/modules/banche/edit.php +++ b/modules/banche/edit.php @@ -190,6 +190,9 @@ if (!empty($numero_documenti)) { dataType: "json", success: function (response) { compilaCampi(response); + }, + error: function() { + toastr["error"](""); } }); } @@ -221,6 +224,9 @@ if (!empty($numero_documenti)) { dataType: "json", success: function (response) { compilaCampi(response); + }, + error: function() { + toastr["error"](""); } }); } diff --git a/modules/banche/src/IBAN.php b/modules/banche/src/IBAN.php index 4b8f3618d..501d76c21 100644 --- a/modules/banche/src/IBAN.php +++ b/modules/banche/src/IBAN.php @@ -417,7 +417,7 @@ class IBAN preg_match_all('/^'.$regex.'/', $iban, $matches); $matches = array_filter($matches, 'is_string', ARRAY_FILTER_USE_KEY); foreach ($matches as $key => $value) { - if (empty($value[0])) { + if (!isset($value[0])) { throw new UnexpectedValueException('Invalid '.$key.' for format '.$regex); } @@ -442,7 +442,9 @@ class IBAN $char = $structure[$current]; if (in_array($char, $keys)) { $count = substr_count($structure, $char); - $result .= str_pad($contents[self::$parsers[$char]], $count, STR_PAD_LEFT); + $result .= str_pad( + substr($contents[self::$parsers[$char]], 0, $count), + $count, STR_PAD_LEFT); $current += $count; } else { $result .= $char; From a86d79d28e9e1d62b022e13cad6ed0affced2885 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 26 Apr 2021 11:42:31 +0200 Subject: [PATCH 8/8] Fix blocco configurazione iniziale --- src/HTMLBuilder/Handler/DefaultHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/HTMLBuilder/Handler/DefaultHandler.php b/src/HTMLBuilder/Handler/DefaultHandler.php index df45321d5..4151535d4 100755 --- a/src/HTMLBuilder/Handler/DefaultHandler.php +++ b/src/HTMLBuilder/Handler/DefaultHandler.php @@ -72,7 +72,7 @@ class DefaultHandler implements HandlerInterface { // Generazione del codice HTML return ' - '; + '; } /**