This commit is contained in:
MatteoPistorello 2023-01-17 11:34:18 +01:00
commit 5a5c7b36a8
12 changed files with 108 additions and 38 deletions

View File

@ -58,9 +58,13 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k
- Aggiunta possibilità di creare campi aggiuntivi con testo libero
- Aggiunta impostazione per nascondere i promemoria su app
- Aggiunta ID utente nei movimenti articolo
- Aggiunta valori buffer Datatables
- Aggiunto filtro referenti per sede in interventi
### Modificato (Changed)
- Miglioria gestione codice REA e provincia
- Miglioria stampa mastrino saldo iniziale
- Miglioria visualizzazione tabella listini clienti
- Migliorata l'impostazione del prezzo di vendita in fase di aggiunta articolo
### Fixed
- Corretta query vista contratti
- Corretta stampa inventario in Articoli

View File

@ -77,6 +77,19 @@ switch (post('op')) {
download($file, 'anagrafiche.csv');
break;
case 'cambia-relazione':
$idrelazione = post('idrelazione');
foreach ($id_records as $id) {
$anagrafica = Anagrafica::find($id);
$anagrafica->idrelazione = $idrelazione;
$anagrafica->save();
}
break;
}
$operations = [];
@ -113,4 +126,13 @@ if (App::debug() && $google) {
];
}
$operations['cambia-relazione'] = [
'text' => '<span><i class="fa fa-copy"></i> '.tr('Cambia relazione').'</span>',
'data' => [
'msg' => tr('Vuoi davvero cambiare la relazione delle anagrafiche selezionate?').'<br><br>{[ "type": "select", "label": "'.tr('Relazione con il cliente').'", "name": "idrelazione", "required": 1, "ajax-source": "relazioni"]}',
'button' => tr('Procedi'),
'class' => 'btn btn-lg btn-warning',
],
];
return $operations;

View File

@ -29,7 +29,7 @@ abstract class Elemento
/**
* @return array
*/
abstract public function toCbiFormat();
abstract public function toRibaAbiCbiFormat();
/**
* @param string $string

View File

@ -6,15 +6,16 @@ namespace Plugins\PresentazioniBancarie\Cbi;
* Classe per gestire l'intestazione del RiBa.
*
* @property int $abi
* @property int $soggetto_veicolatore
* @property int $cab
* @property string $conto
* @property string $data_creazione
* @property string $nome_supporto
* @property string $codice_divisa
* @property string $ragione_soc1_creditore
* @property string $ragione_soc2_creditore
* @property string $ragione_sociale_creditore
* @property string $indirizzo_creditore
* @property string $cap_citta_prov_creditore
* @property string $citta_creditore
* @property string $partita_iva_o_codice_fiscale_creditore
* @property string $identificativo_creditore
* @property string $codice_sia
* @property bool $eol
@ -27,6 +28,13 @@ class Intestazione extends Elemento
* @var int Valore numerico di 5 cifre
*/
protected $abi;
/**
* Codice ABI del soggetto veicolatore.
*
* @var int Valore numerico di 5 cifre
*/
protected $soggetto_veicolatore;
/**
* Codice CAB della banca del creditore.
*
@ -54,11 +62,7 @@ class Intestazione extends Elemento
/**
* @var string Valore alfanumerico di 24 cifre
*/
protected $ragione_soc1_creditore;
/**
* @var string Valore alfanumerico di 24 cifre
*/
protected $ragione_soc2_creditore;
protected $ragione_sociale_creditore;
/**
* @var string Valore alfanumerico di 24 cifre
*/
@ -66,7 +70,11 @@ class Intestazione extends Elemento
/**
* @var string Valore alfanumerico di 24 cifre
*/
protected $cap_citta_prov_creditore;
protected $citta_creditore;
/**
* @var string Valore alfanumerico di 24 cifre
*/
protected $partita_iva_o_codice_fiscale_creditore;
/**
* @var string Valore alfanumerico di 16 cifre, opzionale (default "")
*/
@ -80,7 +88,7 @@ class Intestazione extends Elemento
*/
protected $eol = true;
public function toCbiFormat()
public function toRibaAbiCbiFormat()
{
return [
$this->abi,
@ -89,12 +97,13 @@ class Intestazione extends Elemento
$this->data_creazione,
$this->nome_supporto,
$this->codice_divisa,
$this->ragione_soc1_creditore,
$this->ragione_soc2_creditore,
$this->ragione_sociale_creditore,
$this->indirizzo_creditore,
$this->cap_citta_prov_creditore,
$this->citta_creditore,
$this->partita_iva_o_codice_fiscale_creditore,
$this->identificativo_creditore,
$this->codice_sia,
$this->soggetto_veicolatore,
$this->eol,
];
}

View File

@ -6,10 +6,10 @@ namespace Plugins\PresentazioniBancarie\Cbi\Records;
* Classe dedicata alla gestione dei dati per il record 20 del formato CBI.
*
* @property string numero_progressivo Numero progressivo della ricevuta, uguale a quello indicato per il record 14 della disposizione.
* @property string descrizione_creditore_1 Descrizione del creditore (24 caratteri alfanumerici).
* @property string descrizione_creditore_2 Descrizione del creditore (24 caratteri alfanumerici).
* @property string descrizione_creditore_3 Descrizione del creditore (24 caratteri alfanumerici).
* @property string descrizione_creditore_4 Descrizione del creditore (24 caratteri alfanumerici).
* @property string descrizione_creditore_1 Descrizione del creditore (24 caratteri alfanumerici): ragione sociale
* @property string descrizione_creditore_2 Descrizione del creditore (24 caratteri alfanumerici): indirizzo
* @property string descrizione_creditore_3 Descrizione del creditore (24 caratteri alfanumerici): citta
* @property string descrizione_creditore_4 Descrizione del creditore (24 caratteri alfanumerici): codice fiscale o partita iva -> allineamento a dx (vedi http://www.m8k.org/tracciatocbinet)
*/
class Record20 extends BaseRecord
{
@ -35,7 +35,7 @@ class Record20 extends BaseRecord
'tipo' => 'string',
],
'descrizione_creditore_4' => [
'inizio' => 83,
'inizio' => 91,
'dimensione' => 24,
'tipo' => 'string',
],

View File

@ -12,7 +12,7 @@ namespace Plugins\PresentazioniBancarie\Cbi\Records;
* @property string campo_a_disposizione Campo a disposizione dell'Azienda codice_sia_mittente.
* @property string tipo_flusso Assume il valore: "1" = operazioni generate nellambito di attività Market Place.
* @property string qualificatore_flusso Assume il valore fisso "$".
* @property string soggetto_veicolare Se i due campi tipo_flusso e qualificatore_flusso sono valorizzati con i valori previsti, deve essere indicato il codice ABI della Banca Gateway MP.
* @property string soggetto_veicolatore Se i due campi tipo_flusso e qualificatore_flusso sono valorizzati con i valori previsti, deve essere indicato il codice ABI della Banca Gateway MP.
* @property string codice_divisa Assume il valore fisso "E" (Euro).
* @property string centro_applicativo Questo campo è di interesse soltanto della tratta tra Centri Applicativi. Codice ABI del Centro Applicativo destinatario del supporto.
*/
@ -52,10 +52,9 @@ class RecordIB extends BaseRecord
'qualificatore_flusso' => [
'inizio' => 106,
'dimensione' => 1,
'tipo' => 'constant',
'valore' => '$',
'tipo' => 'string',
],
'soggetto_veicolare' => [
'soggetto_veicolatore' => [
'inizio' => 107,
'dimensione' => 5,
'tipo' => 'string',

View File

@ -93,8 +93,11 @@ class RiBa
$ib->nome_supporto = $intestazione->nome_supporto;
$ib->data_creazione = $intestazione->data_creazione;
$ib->tipo_flusso = 1;
$ib->soggetto_veicolare = $intestazione->abi;
if ( $intestazione->soggetto_veicolatore != "" ) {
$ib->tipo_flusso = 1;
$ib->qualificatore_flusso = '$';
}
$ib->soggetto_veicolatore = $intestazione->soggetto_veicolatore;
$contenuto .= $ib->toCBI().$eol;
// Iterazione tra le ricevute interne al RiBa
@ -123,10 +126,10 @@ class RiBa
// Record 20
$r20 = new Record20();
$r20->numero_progressivo = $progressivo;
$r20->descrizione_creditore_1 = $intestazione->ragione_soc1_creditore;
$r20->descrizione_creditore_2 = $intestazione->ragione_soc2_creditore;
$r20->descrizione_creditore_3 = $intestazione->indirizzo_creditore;
$r20->descrizione_creditore_4 = $intestazione->cap_citta_prov_creditore;
$r20->descrizione_creditore_1 = $intestazione->ragione_sociale_creditore;
$r20->descrizione_creditore_2 = $intestazione->indirizzo_creditore;
$r20->descrizione_creditore_3 = $intestazione->citta_creditore;
$r20->descrizione_creditore_4 = $intestazione->partita_iva_o_codice_fiscale_creditore;
$contenuto .= $r20->toCBI().$eol;
// Record 30
@ -159,9 +162,9 @@ class RiBa
$r51 = new Record51();
$r51->numero_progressivo = $progressivo;
$r51->numero_ricevuta = $ricevuta->numero_ricevuta;
$r51->denominazione_creditore = $intestazione->ragione_soc1_creditore;
$r51->denominazione_creditore = $intestazione->ragione_sociale_creditore;
$contenuto .= $r51->toCBI().$eol;
// Record 70
$r70 = new Record70();
$r70->numero_progressivo = $progressivo;
@ -183,4 +186,24 @@ class RiBa
return $contenuto;
}
public function asRibaAbiCbi()
{
$formato_intestazione = $this->intestazione->toRibaAbiCbiFormat();
// Trasformazione delle ricevute nel formato relativo
$formato_ricevute = [];
foreach ($this->ricevute as $ricevuta) {
$formato_ricevute[] = $ricevuta->toRibaAbiCbiFormat();
}
// Eccezione in caso di assenza di ricevute interne
if (empty($formato_ricevute)) {
throw new InvalidArgumentException();
}
$cbi = new RibaAbiCbi();
return $cbi->creaFile($formato_intestazione, $formato_ricevute);
}
}

View File

@ -90,7 +90,7 @@ class Ricevuta extends Elemento
*/
protected $descrizione_origine;
public function toCbiFormat()
public function toRibaAbiCbiFormat()
{
return [
$this->numero_ricevuta,

View File

@ -87,10 +87,10 @@ class Gestore
$intestazione->cab = $cab_assuntrice;
$intestazione->data_creazione = $data->format('dmy');
$intestazione->nome_supporto = $supporto;
$intestazione->cap_citta_prov_creditore = strtoupper($this->azienda['cap'].' '.$this->azienda['citta'].' '.$this->azienda['provincia']);
$intestazione->ragione_soc1_creditore = strtoupper($this->azienda->ragione_sociale);
$intestazione->citta_creditore = strtoupper($this->azienda['cap'].' '.$this->azienda['citta'].' '.$this->azienda['provincia']);
$intestazione->ragione_sociale_creditore = strtoupper($this->azienda->ragione_sociale);
$intestazione->indirizzo_creditore = strtoupper($this->azienda['indirizzo']);
$intestazione->identificativo_creditore = !empty($this->azienda->partita_iva) ? $this->azienda->partita_iva : $this->azienda->codice_fiscale;
$intestazione->partita_iva_o_codice_fiscale_creditore = !empty($this->azienda->partita_iva) ? $this->azienda->partita_iva : $this->azienda->codice_fiscale;
$this->riba = new RiBa($intestazione);
}

View File

@ -107,5 +107,5 @@ CREATE TABLE `an_pagamenti_anagrafiche` ( `id` INT NOT NULL AUTO_INCREMENT , `me
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Descrizione personalizzata in fatturazione', '', 'textarea', '1', 'Attività', '17', 'Variabili utilizzabili: \n {email}\n {numero}\n {ragione_sociale}\n {richiesta}\n {descrizione}\n {data}\n {data richiesta}\n {data fine intervento}\n {id_anagrafica}\n {stato}\n');
-- Aggiunto plugin Registrazioni in Fatture
INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`, `created_at`, `updated_at`) VALUES (NULL, 'Registrazioni', 'Registrazioni', (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di acquisto'), (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di acquisto'), 'tab', '', '1', '0', '0', '', '', NULL, 'custom', 'registrazioni', '', NOW(), NOW());
INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`, `created_at`, `updated_at`) VALUES (NULL, 'Registrazioni', 'Registrazioni', (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'tab', '', '1', '0', '0', '', '', NULL, 'custom', 'registrazioni', '', NOW(), NOW());
INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES (NULL, 'Registrazioni', 'Registrazioni', (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di acquisto'), (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di acquisto'), 'tab', '', '1', '0', '0', '', '', NULL, 'custom', 'registrazioni', '');
INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES (NULL, 'Registrazioni', 'Registrazioni', (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), (SELECT `id` FROM `zz_modules` WHERE `name` = 'Fatture di vendita'), 'tab', '', '1', '0', '0', '', '', NULL, 'custom', 'registrazioni', '');

View File

@ -62,7 +62,7 @@ ALTER TABLE `an_anagrafiche` DROP `cciaa`;
ALTER TABLE `an_anagrafiche` DROP `cciaa_citta`;
-- Aggiunta nazioni
INSERT INTO `an_nazioni` (`id`, `nome`, `iso2`, `created_at`, `name`) VALUES (NULL, 'Palestina', 'PS', NULL, 'Palestine');
INSERT INTO `an_nazioni` (`id`, `nome`, `iso2`, `name`) VALUES (NULL, 'Palestina', 'PS', 'Palestine');
-- Fix query viste Giacenze sedi
UPDATE `zz_modules` SET `options` = "SELECT

13
update/2_4_40.sql Normal file
View File

@ -0,0 +1,13 @@
-- Fix query viste Utenti e permessi
UPDATE `zz_modules` SET `options` = "SELECT
|select|
FROM
`zz_groups`
LEFT JOIN (SELECT `zz_users`.`idgruppo`, COUNT(`id`) AS num FROM `zz_users` GROUP BY `idgruppo`) AS utenti ON `zz_groups`.`id`=`utenti`.`idgruppo`
WHERE
1=1
HAVING
2=2
ORDER BY
`id`,
`nome` ASC" WHERE `name` = 'Utenti e permessi';